fix bugs, add force option to overwrite destination