`do*` functions should not persist modifications. this should be done at higher level (in the `promote` method).