tighten up tests; remove unnecessary methods; improve documentation
much work on tests, which still fail