Improved adaptor api

* Simpler, consistent adaptor API
* New tests