Refactorization, Added Makefile and some includes