several improvement
add make file