Refactoring Abstract * BasicRepository