sparse matrix support wip