Clever approach.  In the past, I was trying to come up with an approach where the item model would not have to know about all of the various models that depend on it, hence we didn't use Kohana relationships.  But this approach is better.  My only nit is that from an API point of view, $relationships->_xxx shouldn't have an underscore because that implies that we're reaching in from the outside and fiddling with an internal whereas in this case we're directly using the internal members as we're supposed to - so it should be $relationships->has_many["comments"].

Actually, even then this is a little weird because it's exposing Kohana model internals.  We're trying to say "the item has many comments", right?  We might conceivably do this for a lot of different models, so I can see two options:

1) stick with "item_relationships" event but change the API to ```$item_relationships->has_many["comments"] = 1```
2) generalize it to "model_relationships" and the API would be ```$relationships["item"]->has_many["comments"] = 1``` and then we call the relationships event once when we load the module and it preloads all relationships that we'll need - and we have a Gallery_Model class which Does The Right Thing.

I don't know if we have enough cross-module relationships to merit #2, so maybe it doesn't make sense to do that yet, but it seems cleaner and more forward-looking.  thoughts?