implementing matrix4