first stab at updating in place