restructuring the project into modules