add more function for vec2