Wip sip23 √

Sounds very reasonable. I guess an alternative would be to have a `newPromise` abstract method, but this seems to work well.