new matrix reader implemented