`instance` has a `descriptor` attribute, if it's an XModule, and separating the `instance` and `descriptor` doesn't make sense if it's an xblock, so I'd encourage you to just return the instance.

Likewise, the location is just `instance.location`, which should be the same thing as `usage_id`, so I'd be inclined not to return that either.