Confirm whether to overwrite when destination exists.
Refactor rollback code.
Properly handle user intervention in error conditions.