diff --git a/src/cse332/interfaces/worklists/WorkList.java b/src/cse332/interfaces/worklists/WorkList.java
index 0add88bba812dc0e1a8a6a1f62b6c9401af141cf..48c3837030443283b34fa5c15946f15cb52cd545 100644
--- a/src/cse332/interfaces/worklists/WorkList.java
+++ b/src/cse332/interfaces/worklists/WorkList.java
@@ -89,22 +89,23 @@ public abstract class WorkList<E> implements Iterable<E> {
     }
 
     /**
-     * Note that the toString() method of a WorkList _consumes_ the WorkList.
-     * This can lead to odd and unpredictable behavior.
-     * 
-     * @postcondition hasWork() is false
+     * Returns some basic information about this particular worklist.
+     *
+     * Calling this method does not consume the worklist.
+     *
+     * @return a string representation of this worklist
      */
     @Override
     public String toString() {
-        StringBuilder result = new StringBuilder();
-        result.append("[");
-        while (this.hasWork()) {
-            result.append(this.next().toString() + ", ");
-        }
-        if (result.length() > 1) {
-            result.replace(result.length() - 2, result.length(), "");
+        if (this.hasWork()) {
+            return String.format("%s(size = %d, peek = %s)",
+                    this.getClass().getSimpleName(),
+                    this.size(),
+                    this.peek());
+        } else {
+            return String.format("%s(size = %d)",
+                    this.getClass().getSimpleName(),
+                    this.size());
         }
-        result.append("]");
-        return result.toString();
     }
 }