structure improved and Makefile