isn't i == ball? why do we need both