refactor code organization
22 files changed