refactored sparse vectors