examples and tests