update and forward function