add roles logic