moved update to happen on receive