Part 2 of the assignment involves an Iterator, which many of may not have seen before: 2. Get the Snake.squaredDistToSnake( int x, int y ) working. Given a location (x,y), this method returns the square of the distance from (x,y) to the closest link of the snake. You'll have to use an iterator to look through all the links. This is very similar to the hasHitSelf() method. As the question suggests, you can use this "iterator" thingy in a manner similar to its use in the hasHitSelf() method. I'll be a bit more explicit here. Your squaredDistToSnake() method should look like this: int squaredDistToSnake( int x, int y ) { Iterator iter = links.newQueueIterator(); // YOUR CODE HERE. Do any initialization that you need. while (iter.hasNext()) { Link link = (Link) iter.next(); // YOUR CODE HERE. In this section of the code, you // have access to *one* link of the snake, and can // get the instance variables link.x and link.y. // This inner part of the loop is executed exactly // once per link. } // YOUR CODE HERE. Return the result. } James Stewart