added matrix pow() method