fix #9: add MatrixOperator