HasMany Support & Refactoring