Add ModulesAware
Implement ModulesAware
Add cyclic reference prevention.
Refine.