Abstracted the Makefile to make it reusable
Moved all tests into seperate directory
Added more tests to reach 98% code coverage