Abstract BallNode into its own class to be more re-usable.