Made breaking changes for better consistency of interface, and better conformance to the one I'll propose as a TS.