Changes to SVD, refactoring, added support for RMSE evaluation of SVD