updates in place