UserDefinedPath rewrite

now with progress reporting!