Implement the Generic IRepository