implement mat4x4 functionality