Updated with a better model for makefile