proper project structure (refactoring)