added Generic repository