I think I've mentioned this elsewhere, but we should really have a defined interface and doc for this, rather than just having it be an anonymous object.