swizzling, vec2, vec3
mat4 ready