diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 9653da2fcb25dc790008a390fcfe94c28ce17d5f..7f7c9bf9f4f6c6882b1ea7ec45ba72327dbec1c9 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -43,8 +43,8 @@ else()
   list(FILTER sources EXCLUDE REGEX ".*mo_likelihood.f90$")
   list(FILTER sources EXCLUDE REGEX ".*mo_opt_functions.f90$")
   list(FILTER sources EXCLUDE REGEX ".*mo_cost.f90$")
-  list(FILTER sources EXCLUDE REGEX ".*mo_optimization_types.f90$")
-  list(FILTER sources EXCLUDE REGEX ".*mo_optimization_utils.f90$")
+  list(FILTER sources EXCLUDE REGEX ".*mo_optimizee.f90$")
+  list(FILTER sources EXCLUDE REGEX ".*mo_opt_eval_utils.f90$")
 endif()
 
 # option for NetCDF support
diff --git a/src/mo_anneal.f90 b/src/mo_anneal.f90
index 18fda005fdf05e8581438280df254fb6100dfdae..11752bbd228c3bcf64a1e835e36dbe506f937be5 100644
--- a/src/mo_anneal.f90
+++ b/src/mo_anneal.f90
@@ -44,7 +44,7 @@ MODULE mo_anneal
   USE mo_kind, ONLY : i4, i8, dp
   USE mo_utils, ONLY : le, ge
   USE mo_xor4096, ONLY : get_timeseed, xor4096, xor4096g, n_save_state
-  USE mo_optimization_utils, ONLY : optimizee
+  USE mo_optimizee, ONLY : optimizee
 
   IMPLICIT NONE
 
@@ -65,7 +65,7 @@ MODULE mo_anneal
   !!        parameter set (the interface given below has to be used for this function!).
   !!
   !!        \code{.f90}
-  !!        use mo_optimization_utils, only: optimizee
+  !!        use mo_optimizee, only: optimizee
   !!        type, extends(optimizee) :: your_optimizee
   !!        contains
   !!          ! to be implemented with signature: your_evaluate(self, parameters, sigma, stddev_new, likeli_new)
diff --git a/src/mo_cost.f90 b/src/mo_cost.f90
index 8c5d483a1997cea645e23b05e6202f320871c871..56568922104323332c623c3620d02826199020e6 100644
--- a/src/mo_cost.f90
+++ b/src/mo_cost.f90
@@ -224,8 +224,8 @@ CONTAINS
   FUNCTION cost_objective(parameterset, eval, arg1, arg2, arg3)
 
     use mo_kind, only: dp, i4
-    use mo_optimization_utils, only: eval_interface
-    use mo_optimization_types, only : sim_data_t, config_t
+    use mo_optimizee, only: eval_interface
+    use mo_opt_eval_utils, only : sim_data_t, config_t
 
     implicit none
 
diff --git a/src/mo_dds.F90 b/src/mo_dds.F90
index 1b0ff39408fe19f3ff3ebbb86a1611d271009a7e..3639fee03851ccb1b72c3e04d2e89b9fbbebf4ff 100644
--- a/src/mo_dds.F90
+++ b/src/mo_dds.F90
@@ -12,7 +12,7 @@
 !! FORCES is released under the LGPLv3+ license \license_note
 module mo_dds
 
-  use mo_optimization_utils, only : optimizee
+  use mo_optimizee, only : optimizee
 
   IMPLICIT NONE
 
@@ -37,7 +37,7 @@ CONTAINS
   !!
   !!        The function to be minimized is the first argument of DDS and must be defined as \n
   !!        \code{.f90}
-  !!        use mo_optimization_utils, only: optimizee
+  !!        use mo_optimizee, only: optimizee
   !!        type, extends(optimizee) :: your_optimizee
   !!        contains
   !!          ! to be implemented with signature: your_evaluate(self, parameters, sigma, stddev_new, likeli_new)
@@ -49,7 +49,7 @@ CONTAINS
   !!
   !!        \code{.f90}
   !!        use mo_opt_functions, only: griewank
-  !!        use mo_optimization_utils, only: function_optimizee
+  !!        use mo_optimizee, only: function_optimizee
   !!        dv_range(:,1) = (/ -600.0, -600.0, -600.0, -600.0, -600.0, -600.0, -600.0, -600.0, -600.0, -600.0 /)
   !!        dv_range(:,2) = (/ 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0 /)
   !!        dv_ini        = (/ -.226265E+01, -.130187E+01, -.151219E+01, 0.133983E+00, 0.988159E+00, &
@@ -362,7 +362,7 @@ CONTAINS
   !!        so that the algorithm minimizes the negative of the objective function F=(-1*F).\n
   !!        The function to be minimized is the first argument of DDS and must be defined as
   !!        \code{.f90}
-  !!        use mo_optimization_utils, only: optimizee
+  !!        use mo_optimizee, only: optimizee
   !!        type, extends(optimizee) :: your_optimizee
   !!        contains
   !!          ! to be implemented with signature: your_evaluate(self, parameters, sigma, stddev_new, likeli_new)
@@ -399,7 +399,7 @@ CONTAINS
   !!
   !!        \code{.f90}
   !!        use mo_opt_functions, only: griewank
-  !!        use mo_optimization_utils, only: function_optimizee
+  !!        use mo_optimizee, only: function_optimizee
   !!        dv_range(:,1) = (/ -600.0, -600.0, -600.0, -600.0, -600.0, -600.0, -600.0, -600.0, -600.0, -600.0 /)
   !!        dv_range(:,2) = (/ 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0 /)
   !!        dv_ini        = (/ -.226265E+01, -.130187E+01, -.151219E+01, 0.133983E+00, 0.988159E+00, &
diff --git a/src/mo_likelihood.f90 b/src/mo_likelihood.f90
index 463711bf403d1aac60028a87512d3db11afab2fd..b3d081642ae96be625e1c7d22824e943a57fc616 100644
--- a/src/mo_likelihood.f90
+++ b/src/mo_likelihood.f90
@@ -9,7 +9,7 @@ module mo_likelihood
 
   USE mo_kind,   only: i4, dp
   USE mo_moment, only: stddev
-  use mo_optimization_utils, only: eval_interface
+  use mo_optimizee, only: eval_interface
 
   Implicit NONE
 
@@ -47,7 +47,7 @@ CONTAINS
   ! -------------------------------
   !> \brief A Likelihood function: "real" likelihood  (sigma is an error model or given)
   function likelihood_dp(paraset, eval, stddev_in, stddev_new, likeli_new)
-    use mo_optimization_types, only : sim_data_t, config_t
+    use mo_opt_eval_utils, only : sim_data_t, config_t
     REAL(DP), DIMENSION(:), INTENT(IN)            :: paraset          ! parameter set
     procedure(eval_interface), INTENT(IN), pointer :: eval
     REAL(DP),               INTENT(IN), optional  :: stddev_in        ! standard deviation of data
@@ -77,7 +77,7 @@ CONTAINS
   ! -------------------------------
   !> \brief A Log-Likelihood function: "real" likelihood  (sigma is an error model or given)
   function loglikelihood_dp(paraset, eval, stddev_in, stddev_new, likeli_new)
-    use mo_optimization_types, only : sim_data_t, config_t
+    use mo_opt_eval_utils, only : sim_data_t, config_t
     REAL(DP), DIMENSION(:), INTENT(IN)            :: paraset          ! parameter set
     procedure(eval_interface), INTENT(IN), pointer :: eval
     REAL(DP),               INTENT(IN), optional  :: stddev_in        ! standard deviation of data
@@ -107,7 +107,7 @@ CONTAINS
   ! -------------------------------
   !> \brief A Likelihood function: "faked" likelihood (sigma is computed by obs vs model)
   function likelihood_stddev_dp(paraset, eval, stddev_in, stddev_new, likeli_new)
-    use mo_optimization_types, only : sim_data_t, config_t
+    use mo_opt_eval_utils, only : sim_data_t, config_t
     REAL(DP), DIMENSION(:), INTENT(IN)            :: paraset          ! parameter set
     procedure(eval_interface), INTENT(IN), pointer :: eval
     REAL(DP),               INTENT(IN), optional  :: stddev_in        ! standard deviation of data
@@ -147,7 +147,7 @@ CONTAINS
   ! -------------------------------
   !> \brief A Log-Likelihood_stddev function: "faked" likelihood (sigma is computed by obs vs model)
   function loglikelihood_stddev_dp(paraset, eval, stddev_in, stddev_new, likeli_new)
-    use mo_optimization_types, only : sim_data_t, config_t
+    use mo_opt_eval_utils, only : sim_data_t, config_t
     REAL(DP), DIMENSION(:), INTENT(IN)            :: paraset          ! parameter set
     procedure(eval_interface), INTENT(IN), pointer :: eval
     REAL(DP),               INTENT(IN), optional  :: stddev_in        ! standard deviation of data
@@ -189,7 +189,7 @@ CONTAINS
   subroutine model_dp(config, sim_data)
 
     use mo_kind, only: dp
-    use mo_optimization_types, only : sim_data_t, config_t
+    use mo_opt_eval_utils, only : sim_data_t, config_t
     use mo_message, only : error_message
     !! !$ USE omp_lib,    only: OMP_GET_THREAD_NUM
 
diff --git a/src/mo_mcmc.F90 b/src/mo_mcmc.F90
index 5a5c522786699410b5c6d253418a05ec2d115a22..da4de9c5d9ca63c7ab94545992032dc6f825c428 100644
--- a/src/mo_mcmc.F90
+++ b/src/mo_mcmc.F90
@@ -15,7 +15,7 @@ MODULE mo_mcmc
   USE mo_append, only : append
   USE mo_moment, only : stddev
   !$ USE omp_lib,    only: OMP_GET_NUM_THREADS
-  use mo_optimization_utils, only : optimizee
+  use mo_optimizee, only : optimizee
   use mo_message, only : error_message
 #ifdef FORCES_WITH_NETCDF
   use mo_ncwrite, only : dump_netcdf
diff --git a/src/mo_optimization_types.f90 b/src/mo_opt_eval_utils.f90
similarity index 98%
rename from src/mo_optimization_types.f90
rename to src/mo_opt_eval_utils.f90
index 3ba393148e14e900cf5766e1f8d0f6a10f8c5a40..7532aee564d143b9b38fc1f47db965cf02f69b3c 100644
--- a/src/mo_optimization_types.f90
+++ b/src/mo_opt_eval_utils.f90
@@ -1,13 +1,13 @@
-!> \file mo_optimization_types.f90
-!> \brief \copybrief mo_optimization_types
-!> \details \copydetails mo_optimization_types
+!> \file mo_opt_eval_utils.f90
+!> \brief \copybrief mo_opt_eval_utils
+!> \details \copydetails mo_opt_eval_utils
 
 !> \brief Type definitions for optimization routines
 !> \author Maren Kaluza
 !> \date Nov 2019
 !> \copyright Copyright 2005-\today, the CHS Developers, Sabine Attinger: All rights reserved.
 !! FORCES is released under the LGPLv3+ license \license_note
-MODULE mo_optimization_types
+MODULE mo_opt_eval_utils
   use mo_kind, only : i4, dp
   use mo_message, only : error_message
   use mo_string_utils, only : num2str
@@ -396,4 +396,4 @@ MODULE mo_optimization_types
     end if
   end function sim_var_data_shape
 
-END MODULE mo_optimization_types
+END MODULE mo_opt_eval_utils
diff --git a/src/mo_opt_functions.f90 b/src/mo_opt_functions.f90
index 103159d5ab7dbdc5fe7ae8360fee75052969fece..e17219b5826ed303fa1cbf04daed0cd8b823db2f 100644
--- a/src/mo_opt_functions.f90
+++ b/src/mo_opt_functions.f90
@@ -10,7 +10,7 @@
 MODULE mo_opt_functions
 
   use mo_kind, only: i4, dp
-  use mo_optimization_utils, only: eval_interface
+  use mo_optimizee, only: eval_interface
 
   IMPLICIT NONE
 
@@ -5623,7 +5623,7 @@ CONTAINS
   function ackley_objective(parameterset, eval, arg1, arg2, arg3)
 
     use mo_constants, only: pi_dp
-    use mo_optimization_types, only : sim_data_t, config_t
+    use mo_opt_eval_utils, only : sim_data_t, config_t
 
     implicit none
 
@@ -5659,7 +5659,7 @@ CONTAINS
   function griewank_objective(parameterset, eval, arg1, arg2, arg3)
 
     use mo_kind, only: i4, dp
-    use mo_optimization_types, only : sim_data_t, config_t
+    use mo_opt_eval_utils, only : sim_data_t, config_t
 
     implicit none
 
@@ -5701,7 +5701,7 @@ CONTAINS
 
   subroutine eval_dummy(config, sim_data)
     use mo_kind, only : dp
-    use mo_optimization_types, only : sim_data_t, config_t
+    use mo_opt_eval_utils, only : sim_data_t, config_t
 
     implicit none
 
diff --git a/src/mo_optimization_utils.f90 b/src/mo_optimizee.f90
similarity index 97%
rename from src/mo_optimization_utils.f90
rename to src/mo_optimizee.f90
index 6629c275d8ebbd86e2227388191a256a2c83f398..4ea9a3530f1417014813abf8c86b1c0601ffa467 100644
--- a/src/mo_optimization_utils.f90
+++ b/src/mo_optimizee.f90
@@ -1,6 +1,6 @@
-!> \file mo_optimization_utils.f90
-!> \brief \copybrief mo_optimization_utils
-!> \details \copydetails mo_optimization_utils
+!> \file mo_optimizee.f90
+!> \brief \copybrief mo_optimizee
+!> \details \copydetails mo_optimizee
 
 !> \brief Utility functions, such as interface definitions, for optimization routines.
 !> \details An abstract type \ref optimizee is provided to be used with the optimization functions
@@ -14,7 +14,7 @@
 !!
 !> \copyright Copyright 2005-\today, the CHS Developers, Sabine Attinger: All rights reserved.
 !! FORCES is released under the LGPLv3+ license \license_note
-module mo_optimization_utils
+module mo_optimizee
 
   use mo_kind, only : dp
   use mo_message, only : error_message
@@ -33,7 +33,7 @@ module mo_optimization_utils
   !> \brief Interface for evaluation function.
   abstract interface
     subroutine eval_interface(config, sim_data)
-      use mo_optimization_types, only : config_t, sim_data_t
+      use mo_opt_eval_utils, only : config_t, sim_data_t
       type(config_t),                                    intent(in)    :: config  !< configuration
       type(sim_data_t), dimension(:), pointer, optional, intent(inout) :: sim_data !< simulated data
     end subroutine
@@ -184,4 +184,4 @@ contains
     value = self%obj_pointer(parameters, self%eval_pointer, sigma, stddev_new, likeli_new)
   end function evaluate_obj_eval
 
-end module mo_optimization_utils
+end module mo_optimizee
diff --git a/src/mo_sce.F90 b/src/mo_sce.F90
index 6bd015881c23fc8e8695ab8cf5ef1a8c2beb7407..ec08a0ba277e556edd920837c295f7d61c688d8a 100644
--- a/src/mo_sce.F90
+++ b/src/mo_sce.F90
@@ -10,7 +10,7 @@
 !> \copyright Copyright 2005-\today, the CHS Developers, Sabine Attinger: All rights reserved.
 !! FORCES is released under the LGPLv3+ license \license_note
 MODULE mo_sce
-  use mo_optimization_utils, only : optimizee
+  use mo_optimizee, only : optimizee
 
   IMPLICIT NONE
 
@@ -51,7 +51,7 @@ MODULE mo_sce
   !!                  \n
   !!                 The function to be minimized is the first argument of SCE and must be defined as \n
   !!                 \code{.f90}
-  !!                       use mo_optimization_utils, only: optimizee
+  !!                       use mo_optimizee, only: optimizee
   !!                       type, extends(optimizee) :: your_optimizee
   !!                       contains
   !!                         ! to be implemented with signature: your_evaluate(self, parameters, sigma, stddev_new, likeli_new)
@@ -62,7 +62,7 @@ MODULE mo_sce
   !!        \b Example
   !!        \code{.f90}
   !!         use mo_opt_functions, only: griewank
-  !!         use mo_optimization_utils, only: function_optimizee
+  !!         use mo_optimizee, only: function_optimizee
   !!         type(function_optimizee) :: objective
   !!         prange(:,1) = (/ -600.0, -600.0, -600.0, -600.0, -600.0, -600.0, -600.0, -600.0, -600.0, -600.0 /)
   !!         prange(:,2) = (/ 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0 /)
diff --git a/src/pf_tests/test_mo_anneal.pf b/src/pf_tests/test_mo_anneal.pf
index ba8db78226e41cff4c2a9391f5677f2a99d709dc..b8e87efb24e6c0e8d33e3afb305ed9740a09d9f7 100644
--- a/src/pf_tests/test_mo_anneal.pf
+++ b/src/pf_tests/test_mo_anneal.pf
@@ -6,7 +6,7 @@ module test_mo_anneal
   use mo_anneal,  only: GetTemperature    !, GetTemperature_valid
   use mo_cost,    only: range_dp, cost_dp
   use mo_xor4096, only: get_timeseed
-  use mo_optimization_utils, only: function_optimizee
+  use mo_optimizee, only: function_optimizee
   use mo_message, only: error_message
 
   implicit none
diff --git a/src/pf_tests/test_mo_dds.pf b/src/pf_tests/test_mo_dds.pf
index f794c581c6fe9f89af395c1b3bc1c656230cc517..759498ce514f0ebb655c4189b79a483e7a7090ab 100644
--- a/src/pf_tests/test_mo_dds.pf
+++ b/src/pf_tests/test_mo_dds.pf
@@ -4,7 +4,7 @@ module test_mo_dds
   use mo_kind, only: i4, i8, dp
   use mo_dds,  only: dds, mdds
   use mo_opt_functions,    only: griewank
-  use mo_optimization_utils, only: function_optimizee
+  use mo_optimizee, only: function_optimizee
   use mo_message, only: error_message
 
   implicit none
diff --git a/src/pf_tests/test_mo_mcmc.pf b/src/pf_tests/test_mo_mcmc.pf
index a723f11efe1a172ba55201237cde7883a61fbb89..f4df681dd17514994957b56a0ac1992fc2f8a518 100644
--- a/src/pf_tests/test_mo_mcmc.pf
+++ b/src/pf_tests/test_mo_mcmc.pf
@@ -5,7 +5,7 @@ module test_mo_mcmc
   use mo_likelihood, only: setmeas, loglikelihood_dp, loglikelihood_stddev_dp, model_dp
   use mo_mcmc,       only: mcmc, mcmc_stddev
   use mo_moment,     only: mean, stddev
-  use mo_optimization_utils, only: eval_interface, objective_interface, eval_optimizee
+  use mo_optimizee, only: eval_interface, objective_interface, eval_optimizee
   use mo_message, only: error_message
 
   implicit none
diff --git a/src/pf_tests/test_mo_optimization_types.pf b/src/pf_tests/test_mo_optimization_types.pf
index 59a83a414be1ba811227f531b7651fc42773f403..b62d9f54e72b5943354f6db26576e7f7c4f6ed1e 100644
--- a/src/pf_tests/test_mo_optimization_types.pf
+++ b/src/pf_tests/test_mo_optimization_types.pf
@@ -1,7 +1,7 @@
-module test_mo_optimization_types
+module test_mo_opt_eval_utils
 
   use funit
-  use mo_optimization_types
+  use mo_opt_eval_utils
   use mo_kind, only : i4, dp
 
   implicit none
@@ -45,4 +45,4 @@ contains
 
   end subroutine test_sim_data
 
-end module test_mo_optimization_types
+end module test_mo_opt_eval_utils
diff --git a/src/pf_tests/test_mo_sce.pf b/src/pf_tests/test_mo_sce.pf
index 9a12259e47512ddfd632f2ba36c4611f836196d3..bdb4f0de84d78bbf56c13a65c6530338617bc6f7 100644
--- a/src/pf_tests/test_mo_sce.pf
+++ b/src/pf_tests/test_mo_sce.pf
@@ -4,7 +4,7 @@ module test_mo_sce
   use mo_kind,             only: i4, i8, dp
   use mo_sce,              only: sce
   use mo_opt_functions,    only: ackley, griewank
-  use mo_optimization_utils, only: function_optimizee
+  use mo_optimizee, only: function_optimizee
   use mo_message, only: error_message
 
   implicit none