updte for make test passed, besides one: matrix_multiply