factoring out of SVDReconstruct