Just a side note, but do we still need to export `do_update/2`