Re-design directory struct and Add makefile for compile