make project structure more modular