reorganizing codebase