2Dmatrix object definition

Cleaned up a little bit, added a 2DMatrix object that handles the
creation of matrixes, this is cleaner and if we want to create more of
them, we will be able to