modified structure and added makefile