step 4
added tests and makefile