reorganizing the project structure. using require to load dependencies