added elementary svd function, need to sort resulting reconstruction properly