refactored eager loading process