Чуть переработан IRepository