API changes for Yaocho.

These changes simply things on Yaocho a lot.

This would represent breaking changes in the API, so maybe I should change the API version, but I don't think this API is stable yet, so I don' think we need to bump the version.

r?