fix #1 Program structure and Makefile