refactored the app to use a proper organization of the project