diff --git a/acmc/parse.py b/acmc/parse.py
index 790cad6ca80b6b2202bc5a3119bf6ace6b5f8feb..2a04067cc3dec59af1c7c2c9f6881a0408464d6a 100644
--- a/acmc/parse.py
+++ b/acmc/parse.py
@@ -397,14 +397,14 @@ class Cprd(Proto):
 		]
 		
 code_types = {
-	"read2": Read2,
-	"read3": Read3,
-	"icd10": Icd10,
-	"snomed": Snomed,
-	"opcs4": Opcs4,
-	"atc": Atc,
-	"med": Med,
-	"cprd": Cprd,
+	"read2": Read2(),
+	"read3": Read3(),
+	"icd10": Icd10(),
+	"snomed": Snomed(),
+	"opcs4": Opcs4(),
+	"atc": Atc(),
+	"med": Med(),
+	"cprd": Cprd(),
 }
 
 vocab_types = {
diff --git a/acmc/phen.py b/acmc/phen.py
index bc0d7e52abdd4acdf54611952d29f8f42db1a987..90884db02e627524d5c7736b1bb4e6fe05991721 100644
--- a/acmc/phen.py
+++ b/acmc/phen.py
@@ -384,21 +384,21 @@ def preprocess(df, file, target_code_type=None, codes_file=None, translate=True,
 			out = preprocess_code(out=out,
 								  codes=df[file[columns][target_code_type]].dropna(),
 								  codes_file=codes_file,
-								  checker=parse.code_types[target_code_type](),
+								  checker=parse.code_types[target_code_type],
 								  output_col=target_code_type,
 								  metadata_df=df[meta_columns])
 		else:
 			logger.warning(f"No {target_code_type} Codes to process")
 	else:
 		# QA for every code type in df run preprocess_code()
-		for k, v in parse.code_types.items():
-			if k in file['columns']:
+		for code_type_name, code_type in parse.code_types.items():
+			if code_type_name in file['columns']:
 				logger.info(f"Processing {k} Codes...")
 				out = preprocess_code(out=out,
-									  codes=df[file['columns'][k]].dropna(),
+									  codes=df[file['columns'][code_type_name]].dropna(),
 									  codes_file=codes_file,
-									  checker=v(),
-									  output_col=k,
+									  checker=code_type,
+									  output_col=code_type_name,
 									  metadata_df=df[meta_columns])
 				
 	return out, meta_columns