Basic structure and makefile