split up files
organized files and improved makefile