Reorganize project structure and build