diff --git a/validation/api/src/internal.rs b/validation/api/src/internal.rs
index d689981..fb418f6 100644
--- a/validation/api/src/internal.rs
+++ b/validation/api/src/internal.rs
@@ -167,6 +167,9 @@ impl Context{
 	);
 	action!("submissions",action_submission_submitted,config,ActionSubmissionSubmittedRequest,"status/validator-submitted",config.SubmissionID,
 		("ModelVersion",config.ModelVersion.to_string().as_str())
+		("DisplayName",config.DisplayName.as_str())
+		("Creator",config.Creator.as_str())
+		("GameID",config.GameID.to_string().as_str())
 	);
 	action!("submissions",action_submission_validated,config,SubmissionID,"status/validator-validated",config.0,);
 	action!("submissions",update_submission_validated_model,config,UpdateSubmissionModelRequest,"validated-model",config.SubmissionID,
@@ -196,6 +199,9 @@ impl Context{
 	);
 	action!("mapfixes",action_mapfix_submitted,config,ActionMapfixSubmittedRequest,"status/validator-submitted",config.MapfixID,
 		("ModelVersion",config.ModelVersion.to_string().as_str())
+		("DisplayName",config.DisplayName.as_str())
+		("Creator",config.Creator.as_str())
+		("GameID",config.GameID.to_string().as_str())
 	);
 	action!("mapfixes",action_mapfix_validated,config,MapfixID,"status/validator-validated",config.0,);
 	action!("mapfixes",update_mapfix_validated_model,config,UpdateMapfixModelRequest,"validated-model",config.MapfixID,
diff --git a/validation/api/src/types.rs b/validation/api/src/types.rs
index 2a329fc..eb4e87e 100644
--- a/validation/api/src/types.rs
+++ b/validation/api/src/types.rs
@@ -228,6 +228,9 @@ pub struct UpdateSubmissionModelRequest{
 pub struct ActionSubmissionSubmittedRequest{
 	pub SubmissionID:i64,
 	pub ModelVersion:u64,
+	pub DisplayName:String,
+	pub Creator:String,
+	pub GameID:u32,
 }
 
 #[allow(nonstandard_style)]
@@ -267,6 +270,9 @@ pub struct UpdateMapfixModelRequest{
 pub struct ActionMapfixSubmittedRequest{
 	pub MapfixID:i64,
 	pub ModelVersion:u64,
+	pub DisplayName:String,
+	pub Creator:String,
+	pub GameID:u32,
 }
 
 #[allow(nonstandard_style)]
diff --git a/validation/src/check.rs b/validation/src/check.rs
index 0aee2b2..5acf80f 100644
--- a/validation/src/check.rs
+++ b/validation/src/check.rs
@@ -1,5 +1,5 @@
 use crate::download::download_asset_version;
-use crate::rbx_util::{class_is_a,get_mapinfo,get_root_instance,read_dom,MapInfo,ReadDomError};
+use crate::rbx_util::{class_is_a,get_mapinfo,get_root_instance,read_dom,ReadDomError,GameID};
 
 use heck::{ToSnakeCase,ToTitleCase};
 
@@ -61,6 +61,17 @@ impl std::fmt::Display for Check{
 	}
 }
 
+pub enum CheckStatus{
+	Passed{
+		display_name:String,
+		creator:String,
+		game_id:GameID,
+	},
+	Failed{
+		report:CheckReport,
+	}
+}
+
 #[derive(Default)]
 pub struct CheckReport{
 	// === METADATA CHECKS ===
@@ -204,13 +215,13 @@ impl Counts{
 	}
 }
 
-pub fn check(dom:&rbx_dom_weak::WeakDom)->CheckReport{
+pub fn check(dom:&rbx_dom_weak::WeakDom)->CheckStatus{
 	// empty report with all checks failed
 	let mut report=CheckReport::default();
 
 	// extract the root instance, otherwise immediately return
 	let Ok(model_instance)=get_root_instance(&dom)else{
-		return report;
+		return CheckStatus::Failed{report};
 	};
 
 	report.exactly_one_root=Check::Pass;
@@ -223,10 +234,10 @@ pub fn check(dom:&rbx_dom_weak::WeakDom)->CheckReport{
 	}
 
 	// extract model info
-	let MapInfo{display_name,creator,game_id}=get_mapinfo(&dom,model_instance);
+	let map_info=get_mapinfo(&dom,model_instance);
 
 	// check DisplayName
-	if let Ok(display_name)=display_name{
+	if let Ok(display_name)=map_info.display_name{
 		if !display_name.is_empty(){
 			report.has_display_name=Check::Pass;
 			if display_name==display_name.to_title_case(){
@@ -236,14 +247,14 @@ pub fn check(dom:&rbx_dom_weak::WeakDom)->CheckReport{
 	}
 
 	// check Creator
-	if let Ok(creator)=creator{
+	if let Ok(creator)=map_info.creator{
 		if !creator.is_empty(){
 			report.has_creator=Check::Pass;
 		}
 	}
 
 	// check GameID
-	if game_id.is_ok(){
+	if map_info.game_id.is_ok(){
 		report.model_name_prefix_is_valid=Check::Pass;
 	}
 
@@ -298,11 +309,20 @@ pub fn check(dom:&rbx_dom_weak::WeakDom)->CheckReport{
 		report.no_duplicate_wormhole_out=Check::Pass;
 	}
 
-	report
+	if report.pass(){
+		CheckStatus::Passed{
+			// TODO: refactor data structure to avoid pain
+			display_name:map_info.display_name.unwrap().to_owned(),
+			creator:map_info.creator.unwrap().to_owned(),
+			game_id:map_info.game_id.unwrap(),
+		}
+	}else{
+		CheckStatus::Failed{report}
+	}
 }
 
 pub struct CheckReportAndVersion{
-	pub report:CheckReport,
+	pub status:CheckStatus,
 	pub version:u64,
 }
 
@@ -329,8 +349,8 @@ impl crate::message_handler::MessageHandler{
 		// decode dom (slow!)
 		let dom=maybe_gzip.read_with(read_dom,read_dom).map_err(Error::ModelFileDecode)?;
 
-		let report=check(&dom);
+		let status=check(&dom);
 
-		Ok(CheckReportAndVersion{report,version})
+		Ok(CheckReportAndVersion{status,version})
 	}
 }
diff --git a/validation/src/check_mapfix.rs b/validation/src/check_mapfix.rs
index a562ed0..09585dd 100644
--- a/validation/src/check_mapfix.rs
+++ b/validation/src/check_mapfix.rs
@@ -1,4 +1,4 @@
-use crate::check::CheckReportAndVersion;
+use crate::check::{CheckStatus,CheckReportAndVersion};
 use crate::nats_types::CheckMapfixRequest;
 
 #[allow(dead_code)]
@@ -21,23 +21,27 @@ impl crate::message_handler::MessageHandler{
 
 		// update the mapfix depending on the result
 		match check_result{
-			Ok(CheckReportAndVersion{report,version})=>{
-				if report.pass(){
+			Ok(CheckReportAndVersion{status,version})=>{
+				match status{
 					// update the mapfix model status to submitted
+					CheckStatus::Passed{display_name,creator,game_id}=>
 					self.api.action_mapfix_submitted(
 						submissions_api::types::ActionMapfixSubmittedRequest{
 							MapfixID:mapfix_id,
 							ModelVersion:version,
+							DisplayName:display_name,
+							Creator:creator,
+							GameID:game_id as u32,
 						}
-					).await.map_err(Error::ApiActionMapfixCheck)?;
-				}else{
+					).await.map_err(Error::ApiActionMapfixCheck)?,
 					// update the mapfix model status to request changes
+					CheckStatus::Failed{report}=>
 					self.api.action_mapfix_request_changes(
 						submissions_api::types::ActionMapfixRequestChangesRequest{
 							MapfixID:mapfix_id,
 							ErrorMessage:report.to_string(),
 						}
-					).await.map_err(Error::ApiActionMapfixCheck)?;
+					).await.map_err(Error::ApiActionMapfixCheck)?,
 				}
 			},
 			Err(e)=>{
diff --git a/validation/src/check_submission.rs b/validation/src/check_submission.rs
index 05d0f18..b20f976 100644
--- a/validation/src/check_submission.rs
+++ b/validation/src/check_submission.rs
@@ -1,4 +1,4 @@
-use crate::check::CheckReportAndVersion;
+use crate::check::{CheckStatus,CheckReportAndVersion};
 use crate::nats_types::CheckSubmissionRequest;
 
 #[allow(dead_code)]
@@ -21,23 +21,27 @@ impl crate::message_handler::MessageHandler{
 
 		// update the submission depending on the result
 		match check_result{
-			Ok(CheckReportAndVersion{report,version})=>{
-				if report.pass(){
+			Ok(CheckReportAndVersion{status,version})=>{
+				match status{
 					// update the submission model status to submitted
+					CheckStatus::Passed{display_name,creator,game_id}=>
 					self.api.action_submission_submitted(
 						submissions_api::types::ActionSubmissionSubmittedRequest{
 							SubmissionID:submission_id,
 							ModelVersion:version,
+							DisplayName:display_name,
+							Creator:creator,
+							GameID:game_id as u32,
 						}
-					).await.map_err(Error::ApiActionSubmissionCheck)?;
-				}else{
+					).await.map_err(Error::ApiActionSubmissionCheck)?,
 					// update the submission model status to request changes
+					CheckStatus::Failed{report}=>
 					self.api.action_submission_request_changes(
 						submissions_api::types::ActionSubmissionRequestChangesRequest{
 							SubmissionID:submission_id,
 							ErrorMessage:report.to_string(),
 						}
-					).await.map_err(Error::ApiActionSubmissionCheck)?;
+					).await.map_err(Error::ApiActionSubmissionCheck)?,
 				}
 			},
 			Err(e)=>{
diff --git a/validation/src/rbx_util.rs b/validation/src/rbx_util.rs
index 598f35f..db50048 100644
--- a/validation/src/rbx_util.rs
+++ b/validation/src/rbx_util.rs
@@ -89,6 +89,7 @@ pub struct MapInfo<'a>{
 	pub game_id:Result<GameID,ParseGameIDError>,
 }
 
+#[derive(Debug)]
 pub enum StringValueError{
 	ObjectNotFound,
 	ValueNotSet,