Repository layer with generic repository base class