Changed HashSets for ArrayLists (since I now use none of the Set-only functions, and the sizes are mostly guessable).  MUCH faster now!