added role functionality