code refactoring for blockwise-transfer