simplify and annotate loaders based on review feedback
diff --git a/tests/utils.py b/tests/utils.py
index 7d4b3a3..62dfda2 100644
--- a/tests/utils.py
+++ b/tests/utils.py
@@ -70,7 +70,7 @@
 
 
 def load_cryptrec_vectors(vector_data):
-    keys, data = [], {}
+    data = {}
 
     for line in vector_data:
         line = line.strip()
@@ -80,15 +80,18 @@
             continue
 
         if line.startswith("K"):
-            keys.append(line.split(" : ")[1].replace(" ", ""))
+            key = line.split(" : ")[1].replace(" ", "")
             # create an array under the key to hold all the P+C pairs
-            data[keys[-1]] = []
+            # each key has many p+c pairs
+            data[key] = []
         elif line.startswith("P"):
             # create a new dict to hold the next P+C pair
-            data[keys[-1]].append({})
-            data[keys[-1]][-1]["P"] = line.split(" : ")[1].replace(" ", "")
+            pc_pair = {}
+            pc_pair["P"] = line.split(" : ")[1].replace(" ", "")
         elif line.startswith("C"):
-            data[keys[-1]][-1]["C"] = line.split(" : ")[1].replace(" ", "")
+            pc_pair["C"] = line.split(" : ")[1].replace(" ", "")
+            # after a C is found the P+C pair is complete
+            data[key].append(pc_pair)
 
     cryptrec_list = []
     for key, value in sorted(data.items()):
@@ -121,22 +124,22 @@
             continue
 
         vector = line.split(":")
-        args_list = (vector[1].encode("ascii"),
-                     vector[2].encode("ascii"),
-                     vector[3].encode("ascii"),
-                     vector[4].encode("ascii"))
+        params = (vector[1].encode("ascii"),  # key
+                  vector[2].encode("ascii"),  # iv
+                  vector[3].encode("ascii"),  # ciphertext
+                  vector[4].encode("ascii"))  # plaintext
         # some OpenSSL vectors have a final field
         # 0 for decrypt, 1 for encrypt
         if len(vector) == 6:
             if int(vector[5]) == 0:
-                decrypt.append(args_list)
+                decrypt.append(params)
             else:
-                encrypt.append(args_list)
+                encrypt.append(params)
         else:
             # if they don't have 1 or 0 they are meant for both enc & dec
             # and should be added to both the encrypt and decrypt list
-            encrypt.append(args_list)
-            decrypt.append(args_list)
+            encrypt.append(params)
+            decrypt.append(params)
 
     if op == "ENCRYPT":
         return encrypt