Abstract RepositoryÂ