add more computation to set up SVD