here using dt_undo_type_t instead of uint32_t would probably make it better for the reader to figure out what to use as parameters