implemented withProgressFun to tidy up createCopy'
can read/write blocks