There's really no need for this to be a required method on IGListAdapterDataSource. It could simply be a property, defaulted to nil. When you set the property we use it when the adapter is empty.
Not sure if we need to bother what happens if you set the property after everything has been updated.