added matrix4 class