refactor eager loading