Lots of improvements
Clean stuff
Clean stuff
Added test suite