add role func