add tests, expand docs, add LOTS of info to README.md, add examples.