API updates

I'm going to cherry pick this to only include API changes