tidy api, major refactor, update
add some (more) examples