unit tests and examples complete