Added Matrix class as an abstraction of a 2d vector