refactor out AbstractFusionToolRunner
extracted CanonicalUriFileReader/Writer