update forward
update forward logic