Revert "Remove unused code."

This reverts commit 6e12bf184a6c947730bf254750e3069d5328ce44.
Remove Shoot and Vec2 again. But keep Pair this time.
Bug fixing