implementing matrix4 operators