I've been looking at Matt Bierbaum's Javascript code lately, and I was wondering why the initial value of Ghost Spin is randomly generated in his code? Shouldn't it be in the same direction as the outfield? After adding Ghost Spin to the growing cluster, why doesn't it just exit this loop? What does the judgment in line 191 mean? Is there a paper that explains this idea?