refactoring
add makefile
refactoring
refactoring
refactoring