I'm still not sold that everything (including click events) should be a Vector3. In particular; `pt` should only be a Vector2 right?