all repositories implement base interface