refactor, makefile