Modulize source files in Makefile
Add header files to prerequisites in Makefile
Add .gitignore to ingore specific untracked files such as *.o