adding searchable interface and refactoring eager loading