some work for sparse vectors