Reorganize project structure, add Makefile