Add unit tests
Few bug fixes and code refactor
Add Makefile