big ole rewrite of the internals, fixing context problems (not entirely backwards compatible)
doing some api cleanup, rewriting readme with better example