Custom vec2 class