Working version, with tests and an example no docs