Update from spuc, replace smart_array with std::vector