Issue #29 Out for review

I still need to add JavaDoc and there are probably loose ends here and there.
But I'd appreciate some initial feedback here