Use Vector3 internally to represent Vector2