- var direct_owner = mgroup.mmodules.first
- if direct_owner == self and mgroup.parent != null and not mgroup.parent.mmodules.is_empty then
- direct_owner = mgroup.parent.mmodules.first
+ var direct_owner = mgroup.fuzzy_owner
+ if direct_owner == self then
+ # The module is the new owner of its own group, thus adopt the other modules
+ for m in mgroup.mmodules do
+ if m == self then continue
+ m.direct_owner = self
+ model.mmodule_nesting_hierarchy.add_edge(self, m)
+ end
+ # The potential owner is the the fuzzy_owner of the parent group
+ if mgroup.parent != null then direct_owner = mgroup.parent.fuzzy_owner