add api section for re-usable bits, refactor users

Basically works.
remove dead code