added more matrix operations