diff --git a/p6/p6_test.py b/p6/p6_test.py
index 0aa75711b38ee2623292f9ee9f909e6c263b8edb..7e135572fc83bd278f8684896aa8596e1dc4a561 100644
--- a/p6/p6_test.py
+++ b/p6/p6_test.py
@@ -1,7 +1,8 @@
 #!/usr/bin/python
-import os, json, math
 
+import os, json, math
 
+MAX_FILE_SIZE = 500 # units - KB
 REL_TOL = 6e-04  # relative tolerance for floats
 ABS_TOL = 15e-03  # absolute tolerance for floats
 
@@ -90,15 +91,21 @@ expected_json =    {"1": (TEXT_FORMAT_UNORDERED_LIST, ['Brooklyn', 'Manhattan',
                                                          '1 Pvt. Room in Upper West Manhattan']),
                     "20": (TEXT_FORMAT, 30)}
 
-def check_cell(qnum, actual):
+special_ordered_json =  {}
+
+def check_cell_text(qnum, actual):
     format, expected = expected_json[qnum[1:]]
     try:
         if format == TEXT_FORMAT:
             return simple_compare(expected, actual)
+        elif format in [TEXT_FORMAT_ORDERED_LIST, TEXT_FORMAT_LIST_DICTS_ORDERED]:
+            return list_compare_ordered(expected, actual)
         elif format == TEXT_FORMAT_UNORDERED_LIST:
             return list_compare_unordered(expected, actual)
-        elif format == TEXT_FORMAT_ORDERED_LIST:
-            return list_compare_ordered(expected, actual)
+        elif format == TEXT_FORMAT_SPECIAL_ORDERED_LIST:
+            return list_compare_special(expected, actual, special_ordered_json[qnum[1:]])
+        elif format == TEXT_FORMAT_DICT:
+            return dict_compare(expected, actual)
         else:
             if expected != actual:
                 return "expected %s but found %s " % (repr(expected), repr(actual))
@@ -130,15 +137,6 @@ def simple_compare(expected, actual, complete_msg=True):
                 msg = msg + " but found %s" % (repr(actual))
     return msg
 
-def namedtuple_compare(expected, actual):
-    msg = PASS
-    for field in expected._fields:
-        val = simple_compare(getattr(expected, field), getattr(actual, field))
-        if val != PASS:
-            msg = "at attribute %s of namedtuple %s, " % (field, type(expected).__name__) + val
-            return msg
-    return msg
-
 
 def list_compare_ordered(expected, actual, obj="list"):
     msg = PASS
@@ -230,6 +228,7 @@ def list_compare_unordered(expected, actual, obj="list"):
                                                                                                sort_expected)
     return msg
 
+
 def list_compare_special_init(expected, special_order):
     real_expected = []
     for i in range(len(expected)):
@@ -295,7 +294,11 @@ def dict_compare(expected, actual, obj="dict"):
 
 
 def check(qnum, actual):
-    msg = check_cell(qnum, actual)
+    msg = check_cell_text(qnum, actual)
     if msg == PASS:
         return True
     print("<b style='color: red;'>ERROR:</b> " + msg)
+
+def check_file_size(path):
+    size = os.path.getsize(path)
+    assert size < MAX_FILE_SIZE * 10**3, "Your file is too big to be processed by Gradescope; please delete unnecessary output cells so your file size is < %s KB" % MAX_FILE_SIZE