added vec2 c implementation