add multiple role implementation