Proper structure and makefile