my @related_models; # fetch relations from model. By doing it this way when new many_to_many relations are created, the controller automatically picks them up my @relations = $self->schema->source('Document')->relationships(); foreach (@relations) { if ($_ =~ m/(^.*)_documents$/) { push @related_models, $1; } } foreach (@related_models) { my ($relObj) = $object->$_(); #Assume only one object refers to this one (business logic) if ($relObj) { $row{relatedObject} = $relObj->name(); $row{relatedObjectId} = $relObj->id(); $row{relatedObjectType} = $relObj->_source_handle->source_moniker; # Why is getting the source Name so difficult? } } push @data, \%row; } Again thanks for the very informative reply!