diff --git a/src/context.rs b/src/context.rs
new file mode 100644
index 0000000..75b7b3a
--- /dev/null
+++ b/src/context.rs
@@ -0,0 +1,11 @@
+// SPDX-License-Identifier: MIT
+// Copyright (c) 2025 Egon Kastelijn
+// file: src/context.rs
+
+use crate::error::ContextError;
+use crate::model::StationProfile;
+
+/// Provides context for mapping, such as station metadata.
+pub trait ContextProvider {
+    fn get_station_profile(&self, id: &str) -> Result<StationProfile, ContextError>;
+}
diff --git a/src/error.rs b/src/error.rs
index 8c33c9e..fc8c708 100644
--- a/src/error.rs
+++ b/src/error.rs
@@ -1,4 +1,6 @@
 // SPDX-License-Identifier: MIT
+// Copyright (c) 2025 Egon Kastelijn
+// file: src/error.rs
 
 //! Custom error type for CSDIF core operations.
 
diff --git a/src/forward_mapper.rs b/src/forward_mapper.rs
index f221b80..990c801 100644
--- a/src/forward_mapper.rs
+++ b/src/forward_mapper.rs
@@ -1,9 +1,10 @@
-// csdif_core/src/mapper.rs
 // SPDX-License-Identifier: MIT
+// file: csdif_core/src/mapper.rs
 
 use sensorml::model::document::SensorMLDocument;
-use crate::error::ContextError;
+// use crate::error::ContextError;
 use crate::error::MappingError;
+use crate::context::ContextProvider;
 
 pub trait InitiativeForwardMapper {
     fn map_to_sensorml(
@@ -13,13 +14,3 @@ pub trait InitiativeForwardMapper {
     ) -> Result<SensorMLDocument, MappingError>;
 }
 
-/// Provides context for mapping, such as station metadata.
-pub trait ContextProvider {
-    fn get_station_profile(&self, id: &str) -> Result<StationProfile, ContextError>;
-}
-
-#[derive(Debug)]
-pub struct StationProfile {
-    pub id: String,
-}
-
diff --git a/src/lib.rs b/src/lib.rs
index e0136f1..a000c74 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -1,5 +1,8 @@
 // SPDX-License-Identifier: MIT
+// Copyright (c) 2025 Egon Kastelijn
+// file: src/lib.rs
 
+pub mod context;
 pub mod error;
 pub mod forward_mapper;
 pub mod reverse_mapper;
diff --git a/src/model.rs b/src/model.rs
index 9f8a9a6..82ed6c8 100644
--- a/src/model.rs
+++ b/src/model.rs
@@ -1,4 +1,6 @@
 // SPDX-License-Identifier: MIT
+// Copyright (c) 2025 Egon Kastelijn
+// file: src/model.rs
 
 use serde::{Deserialize, Serialize};
 
@@ -34,3 +36,7 @@ pub struct CsdifDocument {
     pub observations: Vec<Observation>,
 }
 
+#[derive(Debug)]
+pub struct StationProfile {
+    pub id: String,
+}
diff --git a/src/reverse_mapper.rs b/src/reverse_mapper.rs
index e0199cd..83de0d0 100644
--- a/src/reverse_mapper.rs
+++ b/src/reverse_mapper.rs
@@ -1,4 +1,6 @@
 // SPDX-License-Identifier: MIT
+// Copyright (c) 2025 Egon Kastelijn
+// file: src/reverse_mapper.rs
 
 use sensorml::model::document::SensorMLDocument;
 
diff --git a/src/transform.rs b/src/transform.rs
index 7a45dec..5cf0beb 100644
--- a/src/transform.rs
+++ b/src/transform.rs
@@ -1,4 +1,6 @@
 // SPDX-License-Identifier: MIT
+// Copyright (c) 2025 Egon Kastelijn
+// file: src/transform.rs
 
 //! Trait-based transformation interface for mapping external data into CSDIF documents.
 
diff --git a/src/validate.rs b/src/validate.rs
index 74d52bc..a9a9c2d 100644
--- a/src/validate.rs
+++ b/src/validate.rs
@@ -1,4 +1,6 @@
 // SPDX-License-Identifier: MIT
+// Copyright (c) 2025 Egon Kastelijn
+// file: src/validate.rs
 
 use crate::model::CsdifDocument;
 
