change the forward function