added SparseVector class