The sparse matrix interface, default implementation and default kernels should be done, just need to write factory methods and rewrite tests