#13 .. expose public API methods, add some unit tests for those methods