more work on SVD