new project structure, tests and build