DataPipeline link_read & linw_write return ghc::filesystem::path. Is this necessary? User must adopt library. Why not return string?