A lot of updates to the interface and new internal api.
Minor nits.