The actual procedure in making residual image is a) FFT model b) degrid and write it to the MODEL data column c) read MODEL and CORRECTED data and subtract the first from the latter d) grid the resultant in c) e) FFT and make the residual image Inefficiencies: 1) the model in b) and c) is unnecessarily written and re-read... from disk 2) There is an unnecessary copy in the visbuffer from correctedVis to vis at d) for gridding Change in process: i) move the degrid process (in (b) ) in the loop of the residual vis calulation degrid the model visibility in visBuffer chunk...hence no need to be on disk and small enough for memory keep. ii) grid the resultant from c) directly ...no need to copy around. iii) Use DATA if CORRECTED is not around iv) save MODEL column (if COLUMN exists) in the last loop only of visibility reconciliation so that it is available for self-caling Additional problem... process a) to e) is done in ImageSkyModel, FTMachine, and SkyEquation classes and there are many tied in things that need to be disentangled before we achive (i) and (ii). For e.g the grid used in a) is the same object as the residual image in e) and is shared between FTMachine and ImageSkyModel. And this is used for different initialization methods in SkyEquation and ImageSkyModel.