diff --git a/corsika/detail/media/ExponentialRefractiveIndex.inl b/corsika/detail/media/ExponentialRefractiveIndex.inl
index 664b47b39572ecb13836e068f363782523324bb1..ce2504872ba36091d9c0bb64ca1ef55a66017186 100644
--- a/corsika/detail/media/ExponentialRefractiveIndex.inl
+++ b/corsika/detail/media/ExponentialRefractiveIndex.inl
@@ -1,31 +1,31 @@
-///*
-// * (c) Copyright 2020 CORSIKA Project, corsika-project@lists.kit.edu
-// *
-// * This software is distributed under the terms of the GNU General Public
-// * Licence version 3 (GPL Version 3). See file LICENSE for a full version of
-// * the license.
-// */
-//
-//#pragma once
-//
-//#include <bits/stdc++.h>
-//#include <corsika/media/IRefractiveIndexModel.hpp>
-//
-//namespace corsika {
-//
-//  template <typename T>
-//  template <typename... Args>
-//  ExponentialRefractiveIndex<T>::ExponentialRefractiveIndex(double const n0,
-//                             InverseLengthType const lambda, Args&&... args)
-//      : T(std::forward<Args>(args)...)
-//      , n_0(n0)
-//      , lambda_(lambda) {}
-//
-//  template <typename T>
-//  double ExponentialRefractiveIndex<T>::getRefractiveIndex(Point const& point) const {
-//  //TODO: THIS METHOD CURRENTLY ONLY USES THE Z-COORDINATE.
-//  //NEED TO THINK IT FOR FUTURE WORK ON ARBITRARY GEOMETRIES.
-//  return n_0 * exp((-lambda_) * point.getCoordinates().getZ());
-//  }
-//
-//} // namespace corsika
+/*
+ * (c) Copyright 2020 CORSIKA Project, corsika-project@lists.kit.edu
+ *
+ * This software is distributed under the terms of the GNU General Public
+ * Licence version 3 (GPL Version 3). See file LICENSE for a full version of
+ * the license.
+ */
+
+#pragma once
+
+#include <bits/stdc++.h>
+#include <corsika/media/IRefractiveIndexModel.hpp>
+
+namespace corsika {
+
+  template <typename T>
+  template <typename... Args>
+  ExponentialRefractiveIndex<T>::ExponentialRefractiveIndex(double const n0,
+                             InverseLengthType const lambda, Args&&... args)
+      : T(std::forward<Args>(args)...)
+      , n_0(n0)
+      , lambda_(lambda) {}
+
+  template <typename T>
+  double ExponentialRefractiveIndex<T>::getRefractiveIndex(Point const& point) const {
+  //TODO: THIS METHOD CURRENTLY ONLY USES THE Z-COORDINATE.
+  //NEED TO THINK IT FOR FUTURE WORK ON ARBITRARY GEOMETRIES.
+  return n_0 * exp((-lambda_) * point.getCoordinates().getZ());
+  }
+
+} // namespace corsika
diff --git a/corsika/media/ExponentialRefractiveIndex.hpp b/corsika/media/ExponentialRefractiveIndex.hpp
index 3ac778926933aad6ff068e4becffd43a25fc67a6..c5b6e4d138f7b61b457e71feb7d59171003f0b66 100644
--- a/corsika/media/ExponentialRefractiveIndex.hpp
+++ b/corsika/media/ExponentialRefractiveIndex.hpp
@@ -38,23 +38,18 @@ namespace corsika {
      */
     template <typename... Args>
     ExponentialRefractiveIndex(double const n0,
-                               InverseLengthType const lambda, Args&&... args)
-        : T(std::forward<Args>(args)...)
-        , n_0(n0)
-        , lambda_(lambda) {}
+                               InverseLengthType const lambda, Args&&... args);
+
     /**
      * Evaluate the refractive index at a given location.
      *
      * @param  point    The location to evaluate at.
      * @returns    The refractive index at this point.
      */
-    double getRefractiveIndex(Point const& point) const final override
-    {
-      //TODO: THIS METHOD CURRENTLY ONLY USES THE Z-COORDINATE.
-      //NEED TO THINK IT FOR FUTURE WORK ON ARBITRARY GEOMETRIES.
-      return n_0 * exp((-lambda_) * point.getCoordinates().getZ());
-    }
+    double getRefractiveIndex(Point const& point) const final override;
 
   }; // END: class ExponentialRefractiveIndex
 
-} // namespace corsika
\ No newline at end of file
+} // namespace corsika
+
+#include <corsika/detail/media/ExponentialRefractiveIndex.inl>