All iterators now subclass of common base class, got a new matrix build working that should work better with sparse, still some bugs to fix there