add example and tests