new directory struct and makefuile