better directory structure and make file