added role support and modified signals accordingly