makefile
more refactoring
more refactoring