basic file structure setup and modularization