added makefile and refactored project structure.