abstracting irepository