add stochastic svd
try block tranfer