new structure and makefile