change retry_exp to take a closure that returns RCopyResult<()>, and change some uses of match to try!
change another match to a try and use an implicit return instead of explicit
use result chaining in lieu of match
fix merge conflicts