for all stuff below maybe you can use cor::copy_apply_if_changed() as udev provider does