Refactoring project structure and more fun stuff