You could avoid this change to the base API, and thereby avoid quite a few other changes, by changing the ```num``` argument to a kwarg with default ```None```.  In addition to simplifying the changeset, this would avoid breaking any user-written backends that might be in use.