a lot of changes
add makefile