examples and unit tests