fleshing out api and example