initial implementation, doc, examples - missing tests
tests and small refactoring
example and API doc