roles repository implementation