same as Matrix but with extra method