added new generic sparse matrix