diff --git a/src/lagrangian/coalCombustion/CoalParcel/submodels/makeCoalParcelSubmodels.C b/src/lagrangian/coalCombustion/CoalParcel/makeCoalParcelSubmodels.C
similarity index 79%
rename from src/lagrangian/coalCombustion/CoalParcel/submodels/makeCoalParcelSubmodels.C
rename to src/lagrangian/coalCombustion/CoalParcel/makeCoalParcelSubmodels.C
index 479a121f8e441c4563b75bd7d98851fceba0c5c8..d4541a503902db3fbd4f5dc4374be5d0dafe5511 100644
--- a/src/lagrangian/coalCombustion/CoalParcel/submodels/makeCoalParcelSubmodels.C
+++ b/src/lagrangian/coalCombustion/CoalParcel/makeCoalParcelSubmodels.C
@@ -49,22 +49,22 @@ License
 namespace Foam
 {
     // Kinematic sub-models
-    createReactingDispersionModelType(CoalParcel);
-    createReactingDragModelType(CoalParcel);
-    createReactingMultiphaseInjectionModelType(CoalParcel);
-    createReactingPatchInteractionModelType(CoalParcel);
-    createReactingPostProcessingModelType(CoalParcel);
+    makeReactingDispersionModels(CoalParcel);
+    makeReactingDragModels(CoalParcel);
+    makeReactingMultiphaseInjectionModels(CoalParcel);
+    makeReactingPatchInteractionModels(CoalParcel);
+    makeReactingPostProcessingModels(CoalParcel);
 
     // Thermo sub-models
-    createReactingHeatTransferModelType(CoalParcel);
+    makeReactingHeatTransferModels(CoalParcel);
 
     // Reacting sub-models
-    createReactingMultiphaseCompositionModelType(CoalParcel);
-    createReactingPhaseChangeModelType(CoalParcel);
+    makeReactingMultiphaseCompositionModels(CoalParcel);
+    makeReactingPhaseChangeModels(CoalParcel);
 
     // Reacting multiphase sub-models
-    createReactingMultiphaseDevolatilisationModelType(CoalParcel);
-    createCoalSurfaceReactionModelType(CoalParcel);
+    makeReactingMultiphaseDevolatilisationModels(CoalParcel);
+    makeCoalSurfaceReactionModels(CoalParcel);
 };
 
 
diff --git a/src/lagrangian/coalCombustion/Make/files b/src/lagrangian/coalCombustion/Make/files
index 4a7cb52d25d614659b0443e27b96d8cc09d742cf..2c7aac61ab97d66fe76fab863c8186c643d3beba 100755
--- a/src/lagrangian/coalCombustion/Make/files
+++ b/src/lagrangian/coalCombustion/Make/files
@@ -3,6 +3,6 @@ CoalCloud/defineCoalCloud.C
 
 /* Coal parcel and sub-models */
 CoalParcel/defineCoalParcel.C
-CoalParcel/submodels/makeCoalParcelSubmodels.C
+CoalParcel/makeCoalParcelSubmodels.C
 
 LIB = $(FOAM_LIBBIN)/libcoalCombustion
diff --git a/src/lagrangian/coalCombustion/CoalParcel/submodels/makeCoalParcelSurfaceReactionModels.H b/src/lagrangian/coalCombustion/include/makeCoalParcelSurfaceReactionModels.H
similarity index 95%
rename from src/lagrangian/coalCombustion/CoalParcel/submodels/makeCoalParcelSurfaceReactionModels.H
rename to src/lagrangian/coalCombustion/include/makeCoalParcelSurfaceReactionModels.H
index d943084ce0cfc21bd4df3e525d65787f89bf47b0..61892e2e0ce3c0682c174cc01c2cce01f56572fd 100644
--- a/src/lagrangian/coalCombustion/CoalParcel/submodels/makeCoalParcelSurfaceReactionModels.H
+++ b/src/lagrangian/coalCombustion/include/makeCoalParcelSurfaceReactionModels.H
@@ -39,21 +39,21 @@ License
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-#define createCoalSurfaceReactionModelType(ParcelType)                        \
+#define makeCoalSurfaceReactionModels(ParcelType)                             \
                                                                               \
-    createCoalSurfaceReactionModelThermoType                                  \
+    makeCoalSurfaceReactionModelThermoType                                    \
     (                                                                         \
         ParcelType,                                                           \
         specieConstProperties                                                 \
     );                                                                        \
-    createCoalSurfaceReactionModelThermoType                                  \
+    makeCoalSurfaceReactionModelThermoType                                    \
     (                                                                         \
         ParcelType,                                                           \
         specieReactingProperties                                              \
     );
 
 
-#define createCoalSurfaceReactionModelThermoType(ParcelType, ThermoType)      \
+#define makeCoalSurfaceReactionModelThermoType(ParcelType, ThermoType)        \
                                                                               \
     makeSurfaceReactionModel                                                  \
     (                                                                         \
diff --git a/src/lagrangian/intermediate/Make/files b/src/lagrangian/intermediate/Make/files
index c67e9e606d3753d3ca4d865c672526d4e6831a3c..de8bcd332129c0d94f42c8f818b3d6aa0359ea02 100644
--- a/src/lagrangian/intermediate/Make/files
+++ b/src/lagrangian/intermediate/Make/files
@@ -1,10 +1,10 @@
 PARCELS=parcels
-DERIVEDPARCELS=$(PARCELS)/derived
 BASEPARCELS=$(PARCELS)/baseClasses
+DERIVEDPARCELS=$(PARCELS)/derived
 
 CLOUDS=clouds
-DERIVEDCLOUDS=$(CLOUDS)/derived
 BASECLOUDS=$(CLOUDS)/baseClasses
+DERIVEDCLOUDS=$(CLOUDS)/derived
 
 
 /* Parcels */
@@ -30,41 +30,32 @@ $(DERIVEDCLOUDS)/BasicTrackedReactingCloud/defineBasicTrackedReactingCloud.C
 KINEMATICPARCEL=$(DERIVEDPARCELS)/basicKinematicParcel
 $(KINEMATICPARCEL)/basicKinematicParcel.C
 $(KINEMATICPARCEL)/defineBasicKinematicParcel.C
-$(KINEMATICPARCEL)/submodels/makeBasicKinematicParcelDispersionModels.C
-$(KINEMATICPARCEL)/submodels/makeBasicKinematicParcelDragModels.C
-$(KINEMATICPARCEL)/submodels/makeBasicKinematicParcelInjectionModels.C
-$(KINEMATICPARCEL)/submodels/makeBasicKinematicParcelPatchInteractionModels.C
-$(KINEMATICPARCEL)/submodels/makeBasicKinematicParcelPostProcessingModels.C
+$(KINEMATICPARCEL)/makeBasicKinematicParcelSubmodels.C
 
 
 /* thermo parcel sub-models */
 THERMOPARCEL=$(DERIVEDPARCELS)/basicThermoParcel
 $(THERMOPARCEL)/basicThermoParcel.C
 $(THERMOPARCEL)/defineBasicThermoParcel.C
-$(THERMOPARCEL)/submodels/makeBasicThermoParcelDispersionModels.C
-$(THERMOPARCEL)/submodels/makeBasicThermoParcelDragModels.C
-$(THERMOPARCEL)/submodels/makeBasicThermoParcelHeatTransferModels.C
-$(THERMOPARCEL)/submodels/makeBasicThermoParcelInjectionModels.C
-$(THERMOPARCEL)/submodels/makeBasicThermoParcelPatchInteractionModels.C
-$(THERMOPARCEL)/submodels/makeBasicThermoParcelPostProcessingModels.C
+$(THERMOPARCEL)/makeBasicThermoParcelSubmodels.C
 
 
 /* reacting parcel sub-models */
 REACTINGPARCEL=$(DERIVEDPARCELS)/BasicReactingParcel
 $(REACTINGPARCEL)/defineBasicReactingParcel.C
-$(REACTINGPARCEL)/submodels/makeBasicReactingParcelSubmodels.C
+$(REACTINGPARCEL)/makeBasicReactingParcelSubmodels.C
 
 
 /* tracked reacting parcel sub-models */
 TRACKEDREACTINGPARCEL=$(DERIVEDPARCELS)/BasicTrackedReactingParcel
 $(TRACKEDREACTINGPARCEL)/defineTrackedReactingParcel.C
-$(TRACKEDREACTINGPARCEL)/submodels/makeBasicTrackedReactingParcelSubmodels.C
+$(TRACKEDREACTINGPARCEL)/makeBasicTrackedReactingParcelSubmodels.C
 
 
 /* reacting multiphase parcel sub-models */
-/*REACTINGMPPARCEL=$(DERIVEDPARCELS)/BasicReactingMultiphaseParcel
+REACTINGMPPARCEL=$(DERIVEDPARCELS)/BasicReactingMultiphaseParcel
 $(REACTINGMPPARCEL)/defineBasicReactingMultiphaseParcel.C
-$(REACTINGMPPARCEL)/submodels/makeBasicReactingMultiphaseSubmodels.C
+$(REACTINGMPPARCEL)/makeBasicReactingMultiphaseParcelSubmodels.C
 
 
 /* bolt-on models */
@@ -72,6 +63,11 @@ submodels/addOns/radiation/absorptionEmission/cloudAbsorptionEmission/cloudAbsor
 submodels/addOns/radiation/scatter/cloudScatter/cloudScatter.C
 
 
+/* data entries */
+submodels/IO/DataEntry/makeDataEntries.C
+submodels/IO/DataEntry/polynomial/polynomial.C
+
+
 /* integration schemes */
 IntegrationScheme/makeIntegrationSchemes.C
 
@@ -86,13 +82,4 @@ phaseProperties/phaseProperties/phasePropertiesIO.C
 phaseProperties/phasePropertiesList/phasePropertiesList.C
 
 
-/* data entries */
-submodels/IO/DataEntry/makeDataEntries.C
-submodels/IO/DataEntry/polynomial/polynomial.C
-
-
-/* IOLists */
-submodels/IO/IOList/makeParcelIOLists.C
-
-
 LIB = $(FOAM_LIBBIN)/liblagrangianIntermediate
diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelSubmodels.C b/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/makeBasicReactingMultiphaseParcelSubmodels.C
similarity index 77%
rename from src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelSubmodels.C
rename to src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/makeBasicReactingMultiphaseParcelSubmodels.C
index 3e9cf9b4d7d2fec37c578f1c424574acbf807932..e795bd4281b4e2810485735ef898898595deeff5 100644
--- a/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelSubmodels.C
+++ b/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/makeBasicReactingMultiphaseParcelSubmodels.C
@@ -49,25 +49,25 @@ License
 namespace Foam
 {
     // Kinematic sub-models
-    createReactingDispersionModelType(BasicReactingMultiphaseParcel);
-    createReactingDragModelType(BasicReactingMultiphaseParcel);
-    createReactingMultiphaseInjectionModelType(BasicReactingMultiphaseParcel);
-    createReactingPatchInteractionModelType(BasicReactingMultiphaseParcel);
-    createReactingPostProcessingModelType(BasicReactingMultiphaseParcel);
+    makeReactingDispersionModels(BasicReactingMultiphaseParcel);
+    makeReactingDragModels(BasicReactingMultiphaseParcel);
+    makeReactingMultiphaseInjectionModels(BasicReactingMultiphaseParcel);
+    makeReactingPatchInteractionModels(BasicReactingMultiphaseParcel);
+    makeReactingPostProcessingModels(BasicReactingMultiphaseParcel);
 
     // Thermo sub-models
-    createReactingHeatTransferModelType(BasicReactingMultiphaseParcel);
+    makeReactingHeatTransferModels(BasicReactingMultiphaseParcel);
 
     // Reacting sub-models
-    createReactingMultiphaseCompositionModelType(BasicReactingMultiphaseParcel);
-    createReactingPhaseChangeModelType(BasicReactingMultiphaseParcel);
+    makeReactingMultiphaseCompositionModels(BasicReactingMultiphaseParcel);
+    makeReactingPhaseChangeModels(BasicReactingMultiphaseParcel);
 
     // Reacting multiphase sub-models
-    createReactingMultiphaseDevolatilisationModelType
+    makeReactingMultiphaseDevolatilisationModels
     (
         BasicReactingMultiphaseParcel
     );
-    createReactingMultiphaseSurfaceReactionModelType
+    makeReactingMultiphaseSurfaceReactionModels
     (
         BasicReactingMultiphaseParcel
     );
diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeBasicReactingParcelSubmodels.C b/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/makeBasicReactingParcelSubmodels.C
similarity index 80%
rename from src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeBasicReactingParcelSubmodels.C
rename to src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/makeBasicReactingParcelSubmodels.C
index be7df8268d1b6676cc69200ae467ccb5f62ee117..a07bda2b65971856c4df43483636232477b031ff 100644
--- a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeBasicReactingParcelSubmodels.C
+++ b/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/makeBasicReactingParcelSubmodels.C
@@ -45,18 +45,18 @@ License
 namespace Foam
 {
     // Kinematic sub-models
-    createReactingDispersionModelType(BasicReactingParcel);
-    createReactingDragModelType(BasicReactingParcel);
-    createReactingInjectionModelType(BasicReactingParcel);
-    createReactingPatchInteractionModelType(BasicReactingParcel);
-    createReactingPostProcessingModelType(BasicReactingParcel);
+    makeReactingDispersionModels(BasicReactingParcel);
+    makeReactingDragModels(BasicReactingParcel);
+    makeReactingInjectionModels(BasicReactingParcel);
+    makeReactingPatchInteractionModels(BasicReactingParcel);
+    makeReactingPostProcessingModels(BasicReactingParcel);
 
     // Thermo sub-models
-    createReactingHeatTransferModelType(BasicReactingParcel);
+    makeReactingHeatTransferModels(BasicReactingParcel);
 
     // Reacting sub-models
-    createReactingCompositionModelType(BasicReactingParcel);
-    createReactingPhaseChangeModelType(BasicReactingParcel);
+    makeReactingCompositionModels(BasicReactingParcel);
+    makeReactingPhaseChangeModels(BasicReactingParcel);
 };
 
 
diff --git a/src/lagrangian/intermediate/parcels/derived/BasicTrackedReactingParcel/submodels/makeBasicTrackedReactingParcelSubmodels.C b/src/lagrangian/intermediate/parcels/derived/BasicTrackedReactingParcel/makeBasicTrackedReactingParcelSubmodels.C
similarity index 78%
rename from src/lagrangian/intermediate/parcels/derived/BasicTrackedReactingParcel/submodels/makeBasicTrackedReactingParcelSubmodels.C
rename to src/lagrangian/intermediate/parcels/derived/BasicTrackedReactingParcel/makeBasicTrackedReactingParcelSubmodels.C
index e81e981f99864e36dcd4352b0c16eae1c30cbcf5..a5d4cd1eeae841ea2299cfd557f36c06e160e819 100644
--- a/src/lagrangian/intermediate/parcels/derived/BasicTrackedReactingParcel/submodels/makeBasicTrackedReactingParcelSubmodels.C
+++ b/src/lagrangian/intermediate/parcels/derived/BasicTrackedReactingParcel/makeBasicTrackedReactingParcelSubmodels.C
@@ -26,14 +26,17 @@ License
 
 #include "BasicTrackedReactingParcel.H"
 
+// Kinematic
 #include "makeReactingParcelDispersionModels.H"
 #include "makeReactingParcelDragModels.H"
 #include "makeReactingParcelInjectionModels.H"
 #include "makeReactingParcelPatchInteractionModels.H"
 #include "makeReactingParcelPostProcessingModels.H"
 
+// Thermo
 #include "makeReactingParcelHeatTransferModels.H"
 
+// Reacting
 #include "makeReactingParcelCompositionModels.H"
 #include "makeReactingParcelPhaseChangeModels.H"
 
@@ -42,18 +45,18 @@ License
 namespace Foam
 {
     // Kinematic sub-models
-    createReactingDispersionModelType(BasicTrackedReactingParcel);
-    createReactingDragModelType(BasicTrackedReactingParcel);
-    createReactingInjectionModelType(BasicTrackedReactingParcel);
-    createReactingPatchInteractionModelType(BasicTrackedReactingParcel);
-    createReactingPostProcessingModelType(BasicTrackedReactingParcel);
+    makeReactingDispersionModels(BasicTrackedReactingParcel);
+    makeReactingDragModels(BasicTrackedReactingParcel);
+    makeReactingInjectionModels(BasicTrackedReactingParcel);
+    makeReactingPatchInteractionModels(BasicTrackedReactingParcel);
+    makeReactingPostProcessingModels(BasicTrackedReactingParcel);
 
     // Thermo sub-models
-    createReactingHeatTransferModelType(BasicTrackedReactingParcel);
+    makeReactingHeatTransferModels(BasicTrackedReactingParcel);
 
     // Reacting sub-models
-    createReactingCompositionModelType(BasicTrackedReactingParcel);
-    createReactingPhaseChangeModelType(BasicTrackedReactingParcel);
+    makeReactingCompositionModels(BasicTrackedReactingParcel);
+    makeReactingPhaseChangeModels(BasicTrackedReactingParcel);
 };
 
 
diff --git a/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/defineBasicKinematicParcel.C b/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/defineBasicKinematicParcel.C
index b5b577c0fc74b628398854c49c0b89e41ee79ca0..e7c1b578da4973a572b62987e48346ca2427152c 100644
--- a/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/defineBasicKinematicParcel.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/defineBasicKinematicParcel.C
@@ -26,6 +26,7 @@ License
 
 #include "basicKinematicParcel.H"
 #include "KinematicCloud.H"
+#include "makeParcelIOList.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -34,6 +35,8 @@ namespace Foam
     defineTemplateTypeNameAndDebug(Cloud<basicKinematicParcel>, 0);
 
     defineParcelTypeNameAndDebug(KinematicCloud<basicKinematicParcel>, 0);
+
+    makeParcelIOList(basicKinematicParcel);
 };
 
 
diff --git a/src/lagrangian/intermediate/submodels/IO/IOList/makeParcelIOLists.C b/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/makeBasicKinematicParcelSubmodels.C
similarity index 73%
rename from src/lagrangian/intermediate/submodels/IO/IOList/makeParcelIOLists.C
rename to src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/makeBasicKinematicParcelSubmodels.C
index 2decc76d4b9e68b7335bb78a9c8726521afc8427..9bb8033765184e1a40559d2226c369c914d47e26 100644
--- a/src/lagrangian/intermediate/submodels/IO/IOList/makeParcelIOLists.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/makeBasicKinematicParcelSubmodels.C
@@ -24,17 +24,25 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "makeParcelIOList.H"
-
 #include "basicKinematicParcel.H"
-#include "basicThermoParcel.H"
+
+// Kinematic
+#include "makeParcelDispersionModels.H"
+#include "makeParcelDragModels.H"
+#include "makeParcelInjectionModels.H"
+#include "makeParcelPatchInteractionModels.H"
+#include "makeParcelPostProcessingModels.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 namespace Foam
 {
-    makeParcelIOList(basicKinematicParcel);
-    makeParcelIOList(basicThermoParcel);
+    // Kinematic sub-models
+    makeParcelDispersionModels(basicKinematicParcel);
+    makeParcelDragModels(basicKinematicParcel);
+    makeParcelInjectionModels(basicKinematicParcel);
+    makeParcelPatchInteractionModels(basicKinematicParcel);
+    makeParcelPostProcessingModels(basicKinematicParcel);
 };
 
 
diff --git a/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/submodels/makeBasicKinematicParcelDispersionModels.C b/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/submodels/makeBasicKinematicParcelDispersionModels.C
deleted file mode 100644
index f6444b1252fe479922e8b867a0ef06bf6629de33..0000000000000000000000000000000000000000
--- a/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/submodels/makeBasicKinematicParcelDispersionModels.C
+++ /dev/null
@@ -1,68 +0,0 @@
-/*---------------------------------------------------------------------------*\
-  =========                 |
-  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-   \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
-     \\/     M anipulation  |
--------------------------------------------------------------------------------
-License
-    This file is part of OpenFOAM.
-
-    OpenFOAM is free software; you can redistribute it and/or modify it
-    under the terms of the GNU General Public License as published by the
-    Free Software Foundation; either version 2 of the License, or (at your
-    option) any later version.
-
-    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
-    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-    for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with OpenFOAM; if not, write to the Free Software Foundation,
-    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-\*---------------------------------------------------------------------------*/
-
-#include "basicKinematicParcel.H"
-#include "KinematicCloud.H"
-
-#include "NoDispersion.H"
-#include "GradientDispersionRAS.H"
-#include "StochasticDispersionRAS.H"
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-namespace Foam
-{
-    makeDispersionModel(KinematicCloud<basicKinematicParcel>);
-
-    defineNamedTemplateTypeNameAndDebug
-    (
-        DispersionRASModel<KinematicCloud<basicKinematicParcel> >,
-        0
-    );
-
-    // Add instances of dispersion model to the table
-    makeDispersionModelType
-    (
-        NoDispersion,
-        KinematicCloud,
-        basicKinematicParcel
-    );
-    makeDispersionModelType
-    (
-        GradientDispersionRAS,
-        KinematicCloud,
-        basicKinematicParcel
-    );
-    makeDispersionModelType
-    (
-        StochasticDispersionRAS,
-        KinematicCloud,
-        basicKinematicParcel
-    );
-};
-
-
-// ************************************************************************* //
diff --git a/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/submodels/makeBasicKinematicParcelInjectionModels.C b/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/submodels/makeBasicKinematicParcelInjectionModels.C
deleted file mode 100644
index 9c406339f51c813e9da433c49de267c552685e56..0000000000000000000000000000000000000000
--- a/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/submodels/makeBasicKinematicParcelInjectionModels.C
+++ /dev/null
@@ -1,76 +0,0 @@
-/*---------------------------------------------------------------------------*\
-  =========                 |
-  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-   \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
-     \\/     M anipulation  |
--------------------------------------------------------------------------------
-License
-    This file is part of OpenFOAM.
-
-    OpenFOAM is free software; you can redistribute it and/or modify it
-    under the terms of the GNU General Public License as published by the
-    Free Software Foundation; either version 2 of the License, or (at your
-    option) any later version.
-
-    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
-    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-    for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with OpenFOAM; if not, write to the Free Software Foundation,
-    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-\*---------------------------------------------------------------------------*/
-
-#include "basicKinematicParcel.H"
-#include "KinematicCloud.H"
-
-#include "ConeInjection.H"
-#include "FieldActivatedInjection.H"
-#include "KinematicLookupTableInjection.H"
-#include "ManualInjection.H"
-#include "NoInjection.H"
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-namespace Foam
-{
-    makeInjectionModel(KinematicCloud<basicKinematicParcel>);
-
-    // Add instances of injection model to the table
-    makeInjectionModelType
-    (
-        ConeInjection,
-        KinematicCloud,
-        basicKinematicParcel
-    );
-    makeInjectionModelType
-    (
-        FieldActivatedInjection,
-        KinematicCloud,
-        basicKinematicParcel
-    );
-    makeInjectionModelType
-    (
-        KinematicLookupTableInjection,
-        KinematicCloud,
-        basicKinematicParcel
-    );
-    makeInjectionModelType
-    (
-        ManualInjection,
-        KinematicCloud,
-        basicKinematicParcel
-    );
-    makeInjectionModelType
-    (
-        NoInjection,
-        KinematicCloud,
-        basicKinematicParcel
-    );
-};
-
-
-// ************************************************************************* //
diff --git a/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/submodels/makeBasicKinematicParcelPatchInteractionModels.C b/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/submodels/makeBasicKinematicParcelPatchInteractionModels.C
deleted file mode 100644
index 2cc9f83d5831671a13ed0dcdbe6df4d44efe5b72..0000000000000000000000000000000000000000
--- a/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/submodels/makeBasicKinematicParcelPatchInteractionModels.C
+++ /dev/null
@@ -1,62 +0,0 @@
-/*---------------------------------------------------------------------------*\
-  =========                 |
-  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-   \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
-     \\/     M anipulation  |
--------------------------------------------------------------------------------
-License
-    This file is part of OpenFOAM.
-
-    OpenFOAM is free software; you can redistribute it and/or modify it
-    under the terms of the GNU General Public License as published by the
-    Free Software Foundation; either version 2 of the License, or (at your
-    option) any later version.
-
-    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
-    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-    for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with OpenFOAM; if not, write to the Free Software Foundation,
-    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-\*---------------------------------------------------------------------------*/
-
-#include "basicKinematicParcel.H"
-#include "KinematicCloud.H"
-
-#include "LocalInteraction.H"
-#include "Rebound.H"
-#include "StandardWallInteraction.H"
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-namespace Foam
-{
-    makePatchInteractionModel(KinematicCloud<basicKinematicParcel>);
-
-    // Add instances of patch interaction model to the table
-    makePatchInteractionModelType
-    (
-        LocalInteraction,
-        KinematicCloud,
-        basicKinematicParcel
-    );
-    makePatchInteractionModelType
-    (
-        Rebound,
-        KinematicCloud,
-        basicKinematicParcel
-    );
-    makePatchInteractionModelType
-    (
-        StandardWallInteraction,
-        KinematicCloud,
-        basicKinematicParcel
-    );
-};
-
-
-// ************************************************************************* //
diff --git a/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/defineBasicThermoParcel.C b/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/defineBasicThermoParcel.C
index 7a05a3ec46b7cff202f562db1007cd54e8fe905a..4c38cff64c556097c3be850556bcdbc6ce6cfea1 100644
--- a/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/defineBasicThermoParcel.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/defineBasicThermoParcel.C
@@ -26,6 +26,7 @@ License
 
 #include "basicThermoParcel.H"
 #include "ThermoCloud.H"
+#include "makeParcelIOList.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -40,6 +41,8 @@ namespace Foam
     defineParcelTypeNameAndDebug(KinematicCloud<basicThermoParcel>, 0);
 
     defineParcelTypeNameAndDebug(ThermoCloud<basicThermoParcel>, 0);
+
+    makeParcelIOList(basicThermoParcel);
 };
 
 
diff --git a/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/submodels/makeBasicThermoParcelPatchInteractionModels.C b/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/makeBasicThermoParcelSubmodels.C
similarity index 69%
rename from src/lagrangian/intermediate/parcels/derived/basicThermoParcel/submodels/makeBasicThermoParcelPatchInteractionModels.C
rename to src/lagrangian/intermediate/parcels/derived/basicThermoParcel/makeBasicThermoParcelSubmodels.C
index 2f93f7aeed39f31fc884169b04fccd2718537943..2496f39d436006944f1f9be1e4814d2fe92648a6 100644
--- a/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/submodels/makeBasicThermoParcelPatchInteractionModels.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/makeBasicThermoParcelSubmodels.C
@@ -25,37 +25,30 @@ License
 \*---------------------------------------------------------------------------*/
 
 #include "basicThermoParcel.H"
-#include "KinematicCloud.H"
 
-#include "LocalInteraction.H"
-#include "Rebound.H"
-#include "StandardWallInteraction.H"
+// Kinematic
+#include "makeParcelDispersionModels.H"
+#include "makeParcelDragModels.H"
+#include "makeParcelInjectionModels.H"
+#include "makeParcelPatchInteractionModels.H"
+#include "makeParcelPostProcessingModels.H"
+
+// Thermodynamic
+#include "makeParcelHeatTransferModels.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 namespace Foam
 {
-    makePatchInteractionModel(KinematicCloud<basicThermoParcel>);
-
-    // Add instances of patch interaction model to the table
-    makePatchInteractionModelType
-    (
-        LocalInteraction,
-        KinematicCloud,
-        basicThermoParcel
-    );
-    makePatchInteractionModelType
-    (
-        Rebound,
-        KinematicCloud,
-        basicThermoParcel
-    );
-    makePatchInteractionModelType
-    (
-        StandardWallInteraction,
-        KinematicCloud,
-        basicThermoParcel
-    );
+    // Kinematic sub-models
+    makeParcelDispersionModels(basicThermoParcel);
+    makeParcelDragModels(basicThermoParcel);
+    makeParcelInjectionModels(basicThermoParcel);
+    makeParcelPatchInteractionModels(basicThermoParcel);
+    makeParcelPostProcessingModels(basicThermoParcel);
+
+    // Thermo sub-models
+    makeParcelHeatTransferModels(basicThermoParcel);
 };
 
 
diff --git a/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/submodels/makeBasicThermoParcelDispersionModels.C b/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/submodels/makeBasicThermoParcelDispersionModels.C
deleted file mode 100644
index 86bc63c72a7626294862f46bf281dd0848d37225..0000000000000000000000000000000000000000
--- a/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/submodels/makeBasicThermoParcelDispersionModels.C
+++ /dev/null
@@ -1,67 +0,0 @@
-/*---------------------------------------------------------------------------*\
-  =========                 |
-  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-   \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
-     \\/     M anipulation  |
--------------------------------------------------------------------------------
-License
-    This file is part of OpenFOAM.
-
-    OpenFOAM is free software; you can redistribute it and/or modify it
-    under the terms of the GNU General Public License as published by the
-    Free Software Foundation; either version 2 of the License, or (at your
-    option) any later version.
-
-    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
-    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-    for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with OpenFOAM; if not, write to the Free Software Foundation,
-    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-\*---------------------------------------------------------------------------*/
-
-#include "basicThermoParcel.H"
-#include "KinematicCloud.H"
-#include "NoDispersion.H"
-#include "GradientDispersionRAS.H"
-#include "StochasticDispersionRAS.H"
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-namespace Foam
-{
-    makeDispersionModel(KinematicCloud<basicThermoParcel>);
-
-    defineNamedTemplateTypeNameAndDebug
-    (
-        DispersionRASModel<KinematicCloud<basicThermoParcel> >,
-        0
-    );
-
-    // Add instances of dispersion model to the table
-    makeDispersionModelType
-    (
-        NoDispersion,
-        KinematicCloud,
-        basicThermoParcel
-    );
-    makeDispersionModelType
-    (
-        GradientDispersionRAS,
-        KinematicCloud,
-        basicThermoParcel
-    );
-    makeDispersionModelType
-    (
-        StochasticDispersionRAS,
-        KinematicCloud,
-        basicThermoParcel
-    );
-};
-
-
-// ************************************************************************* //
diff --git a/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/submodels/makeBasicThermoParcelDragModels.C b/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/submodels/makeBasicThermoParcelDragModels.C
deleted file mode 100644
index aaeacca70c8c756689284602ed52ea9eb95e9598..0000000000000000000000000000000000000000
--- a/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/submodels/makeBasicThermoParcelDragModels.C
+++ /dev/null
@@ -1,44 +0,0 @@
-/*---------------------------------------------------------------------------*\
-  =========                 |
-  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-   \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
-     \\/     M anipulation  |
--------------------------------------------------------------------------------
-License
-    This file is part of OpenFOAM.
-
-    OpenFOAM is free software; you can redistribute it and/or modify it
-    under the terms of the GNU General Public License as published by the
-    Free Software Foundation; either version 2 of the License, or (at your
-    option) any later version.
-
-    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
-    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-    for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with OpenFOAM; if not, write to the Free Software Foundation,
-    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-\*---------------------------------------------------------------------------*/
-
-#include "basicThermoParcel.H"
-#include "KinematicCloud.H"
-#include "NoDrag.H"
-#include "SphereDrag.H"
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-namespace Foam
-{
-    makeDragModel(KinematicCloud<basicThermoParcel>);
-
-    // Add instances of drag model to the table
-    makeDragModelType(NoDrag, KinematicCloud, basicThermoParcel);
-    makeDragModelType(SphereDrag, KinematicCloud, basicThermoParcel);
-};
-
-
-// ************************************************************************* //
diff --git a/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/submodels/makeBasicThermoParcelHeatTransferModels.C b/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/submodels/makeBasicThermoParcelHeatTransferModels.C
deleted file mode 100644
index afb3ae0833ba89d779c0ee14ba7c0d4544545f99..0000000000000000000000000000000000000000
--- a/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/submodels/makeBasicThermoParcelHeatTransferModels.C
+++ /dev/null
@@ -1,44 +0,0 @@
-/*---------------------------------------------------------------------------*\
-  =========                 |
-  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-   \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
-     \\/     M anipulation  |
--------------------------------------------------------------------------------
-License
-    This file is part of OpenFOAM.
-
-    OpenFOAM is free software; you can redistribute it and/or modify it
-    under the terms of the GNU General Public License as published by the
-    Free Software Foundation; either version 2 of the License, or (at your
-    option) any later version.
-
-    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
-    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-    for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with OpenFOAM; if not, write to the Free Software Foundation,
-    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-\*---------------------------------------------------------------------------*/
-
-#include "basicThermoParcel.H"
-#include "ThermoCloud.H"
-#include "NoHeatTransfer.H"
-#include "RanzMarshall.H"
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-namespace Foam
-{
-    makeHeatTransferModel(ThermoCloud<basicThermoParcel>);
-
-    // Add instances of heat transfer model to the table
-    makeHeatTransferModelType(NoHeatTransfer, ThermoCloud, basicThermoParcel);
-    makeHeatTransferModelType(RanzMarshall, ThermoCloud, basicThermoParcel);
-};
-
-
-// ************************************************************************* //
diff --git a/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/submodels/makeBasicThermoParcelInjectionModels.C b/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/submodels/makeBasicThermoParcelInjectionModels.C
deleted file mode 100644
index 2635b239377b0e38df9bec30515579cd3f37fb01..0000000000000000000000000000000000000000
--- a/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/submodels/makeBasicThermoParcelInjectionModels.C
+++ /dev/null
@@ -1,78 +0,0 @@
-/*---------------------------------------------------------------------------*\
-  =========                 |
-  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-   \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
-     \\/     M anipulation  |
--------------------------------------------------------------------------------
-License
-    This file is part of OpenFOAM.
-
-    OpenFOAM is free software; you can redistribute it and/or modify it
-    under the terms of the GNU General Public License as published by the
-    Free Software Foundation; either version 2 of the License, or (at your
-    option) any later version.
-
-    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
-    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-    for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with OpenFOAM; if not, write to the Free Software Foundation,
-    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-\*---------------------------------------------------------------------------*/
-
-#include "basicThermoParcel.H"
-#include "ThermoCloud.H"
-
-#include "ConeInjection.H"
-#include "FieldActivatedInjection.H"
-#include "ManualInjection.H"
-#include "NoInjection.H"
-#include "ThermoLookupTableInjection.H"
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-namespace Foam
-{
-    makeInjectionModel(KinematicCloud<basicThermoParcel>);
-
-    // Add instances of injection model to the table
-
-    makeInjectionModelType
-    (
-        ConeInjection,
-        KinematicCloud,
-        basicThermoParcel
-    );
-    makeInjectionModelType
-    (
-        FieldActivatedInjection,
-        KinematicCloud,
-        basicThermoParcel
-    );
-    makeInjectionModelType
-    (
-        ManualInjection,
-        KinematicCloud,
-        basicThermoParcel
-    );
-    makeInjectionModelType
-    (
-        NoInjection,
-        KinematicCloud,
-        basicThermoParcel
-    );
-    makeInjectionModelType
-    (
-        ThermoLookupTableInjection,
-        KinematicCloud,
-        basicThermoParcel
-    );
-
-};
-
-
-// ************************************************************************* //
diff --git a/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/submodels/makeBasicThermoParcelPostProcessingModels.C b/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/submodels/makeBasicThermoParcelPostProcessingModels.C
deleted file mode 100644
index 65554340395595af12bd3cdca22ce41128aa8a43..0000000000000000000000000000000000000000
--- a/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/submodels/makeBasicThermoParcelPostProcessingModels.C
+++ /dev/null
@@ -1,54 +0,0 @@
-/*---------------------------------------------------------------------------*\
-  =========                 |
-  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-   \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
-     \\/     M anipulation  |
--------------------------------------------------------------------------------
-License
-    This file is part of OpenFOAM.
-
-    OpenFOAM is free software; you can redistribute it and/or modify it
-    under the terms of the GNU General Public License as published by the
-    Free Software Foundation; either version 2 of the License, or (at your
-    option) any later version.
-
-    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
-    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-    for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with OpenFOAM; if not, write to the Free Software Foundation,
-    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-\*---------------------------------------------------------------------------*/
-
-#include "basicThermoParcel.H"
-#include "KinematicCloud.H"
-#include "NoPostProcessing.H"
-#include "PatchPostProcessing.H"
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-namespace Foam
-{
-    makePostProcessingModel(KinematicCloud<basicThermoParcel>);
-
-    // Add instances of post-processing model to the table
-    makePostProcessingModelType
-    (
-        NoPostProcessing,
-        KinematicCloud,
-        basicThermoParcel
-    );
-    makePostProcessingModelType
-    (
-        PatchPostProcessing,
-        KinematicCloud,
-        basicThermoParcel
-    );
-};
-
-
-// ************************************************************************* //
diff --git a/src/lagrangian/intermediate/parcels/include/createReactingMultiphaseParcelTypes.H b/src/lagrangian/intermediate/parcels/include/createReactingMultiphaseParcelTypes.H
index 80e065083d95be8176da45a9ba32f1f61ac62546..97c6a1bb769f0d4171f982be96c6b17d34043cb3 100644
--- a/src/lagrangian/intermediate/parcels/include/createReactingMultiphaseParcelTypes.H
+++ b/src/lagrangian/intermediate/parcels/include/createReactingMultiphaseParcelTypes.H
@@ -39,7 +39,7 @@ License
         ParcelType,                                                           \
         specieConstProperties                                                 \
     );                                                                        \
-    createReactingParcelThermoType                                            \
+    createReactingMultiphaseParcelThermoType                                  \
     (                                                                         \
         ParcelType,                                                           \
         specieReactingProperties                                              \
diff --git a/src/lagrangian/intermediate/parcels/include/makeParcelDispersionModels.H b/src/lagrangian/intermediate/parcels/include/makeParcelDispersionModels.H
new file mode 100644
index 0000000000000000000000000000000000000000..632ce5bff38436cad16e268c6299faf95620e475
--- /dev/null
+++ b/src/lagrangian/intermediate/parcels/include/makeParcelDispersionModels.H
@@ -0,0 +1,74 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+License
+    This file is part of OpenFOAM.
+
+    OpenFOAM is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by the
+    Free Software Foundation; either version 2 of the License, or (at your
+    option) any later version.
+
+    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+    for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with OpenFOAM; if not, write to the Free Software Foundation,
+    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef makeParcelDispersionModels_h
+#define makeParcelDispersionModels_h
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#include "KinematicCloud.H"
+
+#include "NoDispersion.H"
+#include "GradientDispersionRAS.H"
+#include "StochasticDispersionRAS.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#define makeParcelDispersionModels(ParcelType)                                \
+                                                                              \
+    makeDispersionModel(KinematicCloud<ParcelType>);                          \
+                                                                              \
+    defineNamedTemplateTypeNameAndDebug                                       \
+    (                                                                         \
+        DispersionRASModel<KinematicCloud<ParcelType> >,                      \
+        0                                                                     \
+    );                                                                        \
+                                                                              \
+    makeDispersionModelType                                                   \
+    (                                                                         \
+        NoDispersion,                                                         \
+        KinematicCloud,                                                       \
+        ParcelType                                                            \
+    );                                                                        \
+    makeDispersionModelType                                                   \
+    (                                                                         \
+        GradientDispersionRAS,                                                \
+        KinematicCloud,                                                       \
+        ParcelType                                                            \
+    );                                                                        \
+    makeDispersionModelType                                                   \
+    (                                                                         \
+        StochasticDispersionRAS,                                              \
+        KinematicCloud,                                                       \
+        ParcelType                                                            \
+    );
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/submodels/makeBasicKinematicParcelDragModels.C b/src/lagrangian/intermediate/parcels/include/makeParcelDragModels.H
similarity index 67%
rename from src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/submodels/makeBasicKinematicParcelDragModels.C
rename to src/lagrangian/intermediate/parcels/include/makeParcelDragModels.H
index 6b10e4efb0356ff4e8e1d200e26f760efcbbf95e..323a06f921e53a2f94ed1c3aadcfd728fed0ee05 100644
--- a/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/submodels/makeBasicKinematicParcelDragModels.C
+++ b/src/lagrangian/intermediate/parcels/include/makeParcelDragModels.H
@@ -24,7 +24,11 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "basicKinematicParcel.H"
+#ifndef makeParcelDragModels_H
+#define makeParcelDragModels_H
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
 #include "KinematicCloud.H"
 
 #include "NoDrag.H"
@@ -32,14 +36,16 @@ License
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-namespace Foam
-{
-    makeDragModel(KinematicCloud<basicKinematicParcel>);
+#define makeParcelDragModels(ParcelType)                                     \
+                                                                             \
+    makeDragModel(KinematicCloud<ParcelType>);                               \
+                                                                             \
+    makeDragModelType(NoDrag, KinematicCloud, ParcelType);                   \
+    makeDragModelType(SphereDrag, KinematicCloud, ParcelType);
 
-    // Add instances of drag model to the table
-    makeDragModelType(NoDrag, KinematicCloud, basicKinematicParcel);
-    makeDragModelType(SphereDrag, KinematicCloud, basicKinematicParcel);
-};
 
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
 
 // ************************************************************************* //
diff --git a/src/lagrangian/intermediate/parcels/include/makeParcelHeatTransferModels.H b/src/lagrangian/intermediate/parcels/include/makeParcelHeatTransferModels.H
new file mode 100644
index 0000000000000000000000000000000000000000..dfe34098657ff0f990d054aef367f5b82bc04091
--- /dev/null
+++ b/src/lagrangian/intermediate/parcels/include/makeParcelHeatTransferModels.H
@@ -0,0 +1,61 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+License
+    This file is part of OpenFOAM.
+
+    OpenFOAM is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by the
+    Free Software Foundation; either version 2 of the License, or (at your
+    option) any later version.
+
+    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+    for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with OpenFOAM; if not, write to the Free Software Foundation,
+    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef makeParcelHeatTransferModels_H
+#define makeParcelHeatTransferModels_H
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#include "ThermoCloud.H"
+
+#include "NoHeatTransfer.H"
+#include "RanzMarshall.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#define makeParcelHeatTransferModels(ParcelType)                              \
+                                                                              \
+    makeHeatTransferModel(ThermoCloud<ParcelType>);                           \
+                                                                              \
+    makeHeatTransferModelType                                                 \
+    (                                                                         \
+        NoHeatTransfer,                                                       \
+        ThermoCloud,                                                          \
+        ParcelType                                                            \
+    );                                                                        \
+    makeHeatTransferModelType                                                 \
+    (                                                                         \
+        RanzMarshall,                                                         \
+        ThermoCloud,                                                          \
+        ParcelType                                                            \
+    );                                                                        \
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/lagrangian/intermediate/parcels/include/makeParcelInjectionModels.H b/src/lagrangian/intermediate/parcels/include/makeParcelInjectionModels.H
new file mode 100644
index 0000000000000000000000000000000000000000..3bd86d1f215f81dea3b1bbf880bd9ccb3e82fa0e
--- /dev/null
+++ b/src/lagrangian/intermediate/parcels/include/makeParcelInjectionModels.H
@@ -0,0 +1,82 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+License
+    This file is part of OpenFOAM.
+
+    OpenFOAM is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by the
+    Free Software Foundation; either version 2 of the License, or (at your
+    option) any later version.
+
+    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+    for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with OpenFOAM; if not, write to the Free Software Foundation,
+    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef makeParcelInjectionModels_H
+#define makeParcelInjectionModels_H
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#include "KinematicCloud.H"
+
+#include "ConeInjection.H"
+#include "FieldActivatedInjection.H"
+#include "KinematicLookupTableInjection.H"
+#include "ManualInjection.H"
+#include "NoInjection.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#define makeParcelInjectionModels(ParcelType)                                  \
+                                                                              \
+    makeInjectionModel(KinematicCloud<ParcelType>);                           \
+                                                                              \
+    makeInjectionModelType                                                    \
+    (                                                                         \
+        ConeInjection,                                                        \
+        KinematicCloud,                                                       \
+        ParcelType                                                            \
+    );                                                                        \
+    makeInjectionModelType                                                    \
+    (                                                                         \
+        FieldActivatedInjection,                                              \
+        KinematicCloud,                                                       \
+        ParcelType                                                            \
+    );                                                                        \
+    makeInjectionModelType                                                    \
+    (                                                                         \
+        KinematicLookupTableInjection,                                        \
+        KinematicCloud,                                                       \
+        ParcelType                                                            \
+    );                                                                        \
+    makeInjectionModelType                                                    \
+    (                                                                         \
+        ManualInjection,                                                      \
+        KinematicCloud,                                                       \
+        ParcelType                                                            \
+    );                                                                        \
+    makeInjectionModelType                                                    \
+    (                                                                         \
+        NoInjection,                                                          \
+        KinematicCloud,                                                       \
+        ParcelType                                                            \
+    );
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/lagrangian/intermediate/parcels/include/makeParcelPatchInteractionModels.H b/src/lagrangian/intermediate/parcels/include/makeParcelPatchInteractionModels.H
new file mode 100644
index 0000000000000000000000000000000000000000..778ef50d5036794f6e00d5467140845d086ca801
--- /dev/null
+++ b/src/lagrangian/intermediate/parcels/include/makeParcelPatchInteractionModels.H
@@ -0,0 +1,68 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+License
+    This file is part of OpenFOAM.
+
+    OpenFOAM is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by the
+    Free Software Foundation; either version 2 of the License, or (at your
+    option) any later version.
+
+    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+    for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with OpenFOAM; if not, write to the Free Software Foundation,
+    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef makeParcelPatchInteractionModels_H
+#define makeParcelPatchInteractionModels_H
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#include "KinematicCloud.H"
+
+#include "LocalInteraction.H"
+#include "Rebound.H"
+#include "StandardWallInteraction.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#define makeParcelPatchInteractionModels(ParcelType)                          \
+                                                                              \
+    makePatchInteractionModel(KinematicCloud<ParcelType>);                    \
+                                                                              \
+    makePatchInteractionModelType                                             \
+    (                                                                         \
+        LocalInteraction,                                                     \
+        KinematicCloud,                                                       \
+        ParcelType                                                            \
+    );                                                                        \
+    makePatchInteractionModelType                                             \
+    (                                                                         \
+        Rebound,                                                              \
+        KinematicCloud,                                                       \
+        ParcelType                                                            \
+    );                                                                        \
+    makePatchInteractionModelType                                             \
+    (                                                                         \
+        StandardWallInteraction,                                              \
+        KinematicCloud,                                                       \
+        ParcelType                                                            \
+    );
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/submodels/makeBasicKinematicParcelPostProcessingModels.C b/src/lagrangian/intermediate/parcels/include/makeParcelPostProcessingModels.H
similarity index 50%
rename from src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/submodels/makeBasicKinematicParcelPostProcessingModels.C
rename to src/lagrangian/intermediate/parcels/include/makeParcelPostProcessingModels.H
index 9d48510f13a321f51eaafda1bdb7cb602c2bb5e4..e54a0a790af482bbaea21195ea874f403a76bd99 100644
--- a/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/submodels/makeBasicKinematicParcelPostProcessingModels.C
+++ b/src/lagrangian/intermediate/parcels/include/makeParcelPostProcessingModels.H
@@ -24,7 +24,11 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "basicKinematicParcel.H"
+#ifndef makeParcelPostProcessingModels_H
+#define makeParcelPostProcessingModels_H
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
 #include "KinematicCloud.H"
 
 #include "NoPostProcessing.H"
@@ -32,24 +36,26 @@ License
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-namespace Foam
-{
-    makePostProcessingModel(KinematicCloud<basicKinematicParcel>);
-
-    // Add instances of post-processing model to the table
-    makePostProcessingModelType
-    (
-        NoPostProcessing,
-        KinematicCloud,
-        basicKinematicParcel
+#define makeParcelPostProcessingModels(ParcelType)                            \
+                                                                              \
+    makePostProcessingModel(KinematicCloud<ParcelType>);                      \
+                                                                              \
+    makePostProcessingModelType                                               \
+    (                                                                         \
+        NoPostProcessing,                                                     \
+        KinematicCloud,                                                       \
+        ParcelType                                                            \
+    );                                                                        \
+    makePostProcessingModelType                                               \
+    (                                                                         \
+        PatchPostProcessing,                                                  \
+        KinematicCloud,                                                       \
+        ParcelType                                                            \
     );
-    makePostProcessingModelType
-    (
-        PatchPostProcessing,
-        KinematicCloud,
-        basicKinematicParcel
-    );
-};
 
 
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
 // ************************************************************************* //
diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeReactingMultiphaseParcelCompositionModels.H b/src/lagrangian/intermediate/parcels/include/makeReactingMultiphaseParcelCompositionModels.H
similarity index 92%
rename from src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeReactingMultiphaseParcelCompositionModels.H
rename to src/lagrangian/intermediate/parcels/include/makeReactingMultiphaseParcelCompositionModels.H
index 9f7a15cd43a12d8907449c7bad5a7b78de032150..23c94d90588e35424b62314033c0f3f7631709ea 100644
--- a/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeReactingMultiphaseParcelCompositionModels.H
+++ b/src/lagrangian/intermediate/parcels/include/makeReactingMultiphaseParcelCompositionModels.H
@@ -36,21 +36,21 @@ License
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-#define createReactingMultiphaseCompositionModelType(ParcelType)              \
+#define makeReactingMultiphaseCompositionModels(ParcelType)                   \
                                                                               \
-    createReactingMultiphaseCompositionModelThermoType                        \
+    makeReactingMultiphaseCompositionModelThermoType                          \
     (                                                                         \
         ParcelType,                                                           \
         specieConstProperties                                                 \
     );                                                                        \
-    createReactingMultiphaseCompositionModelThermoType                        \
+    makeReactingMultiphaseCompositionModelThermoType                          \
     (                                                                         \
         ParcelType,                                                           \
         specieReactingProperties                                              \
     );
 
 
-#define createReactingMultiphaseCompositionModelThermoType(ParcelType, ThermoType)\
+#define makeReactingMultiphaseCompositionModelThermoType(ParcelType, ThermoType)\
                                                                               \
     makeCompositionModel(ReactingCloud<ParcelType<ThermoType> >);             \
                                                                               \
diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeReactingMultiphaseParcelDevolatilisationModels.H b/src/lagrangian/intermediate/parcels/include/makeReactingMultiphaseParcelDevolatilisationModels.H
similarity index 93%
rename from src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeReactingMultiphaseParcelDevolatilisationModels.H
rename to src/lagrangian/intermediate/parcels/include/makeReactingMultiphaseParcelDevolatilisationModels.H
index 5a3a32e16b250b439d88de09265770882155f655..357d1205065e24cdd481b828eca25425d92a2387 100644
--- a/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeReactingMultiphaseParcelDevolatilisationModels.H
+++ b/src/lagrangian/intermediate/parcels/include/makeReactingMultiphaseParcelDevolatilisationModels.H
@@ -38,21 +38,21 @@ License
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-#define createReactingMultiphaseDevolatilisationModelType(ParcelType)          \
+#define makeReactingMultiphaseDevolatilisationModels(ParcelType)              \
                                                                               \
-    createReactingMultiphaseDevolatilisationModelThermoType                    \
+    makeReactingMultiphaseDevolatilisationModelThermoType                     \
     (                                                                         \
         ParcelType,                                                           \
         specieConstProperties                                                 \
     );                                                                        \
-    createReactingMultiphaseDevolatilisationModelThermoType                    \
+    makeReactingMultiphaseDevolatilisationModelThermoType                     \
     (                                                                         \
         ParcelType,                                                           \
         specieReactingProperties                                              \
     );
 
 
-#define createReactingMultiphaseDevolatilisationModelThermoType(ParcelType, ThermoType)\
+#define makeReactingMultiphaseDevolatilisationModelThermoType(ParcelType, ThermoType)\
                                                                               \
     makeDevolatilisationModel                                                 \
     (                                                                         \
diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeReactingMultiphaseParcelInjectionModels.H b/src/lagrangian/intermediate/parcels/include/makeReactingMultiphaseParcelInjectionModels.H
similarity index 94%
rename from src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeReactingMultiphaseParcelInjectionModels.H
rename to src/lagrangian/intermediate/parcels/include/makeReactingMultiphaseParcelInjectionModels.H
index 2ee34397facaef8e305ddacb38beae3c93106dfe..2c705ec989c7c85ca241c2e269f1b9ff87d4ae37 100644
--- a/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeReactingMultiphaseParcelInjectionModels.H
+++ b/src/lagrangian/intermediate/parcels/include/makeReactingMultiphaseParcelInjectionModels.H
@@ -39,22 +39,22 @@ License
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-#define createReactingMultiphaseInjectionModelType(ParcelType)                \
+#define makeReactingMultiphaseInjectionModels(ParcelType)                     \
                                                                               \
-    createReactingMultiphaseInjectionModelThermoType                          \
+    makeReactingMultiphaseInjectionModelThermoType                            \
     (                                                                         \
         ParcelType,                                                           \
         specieConstProperties                                                 \
     );                                                                        \
                                                                               \
-    createReactingMultiphaseInjectionModelThermoType                          \
+    makeReactingMultiphaseInjectionModelThermoType                            \
     (                                                                         \
         ParcelType,                                                           \
         specieReactingProperties                                              \
     );
 
 
-#define createReactingMultiphaseInjectionModelThermoType(ParcelType, ThermoType)\
+#define makeReactingMultiphaseInjectionModelThermoType(ParcelType, ThermoType)\
                                                                               \
     makeInjectionModel(KinematicCloud<ParcelType<ThermoType> >);              \
                                                                               \
diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeReactingMultiphaseParcelSurfaceReactionModels.H b/src/lagrangian/intermediate/parcels/include/makeReactingMultiphaseParcelSurfaceReactionModels.H
similarity index 92%
rename from src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeReactingMultiphaseParcelSurfaceReactionModels.H
rename to src/lagrangian/intermediate/parcels/include/makeReactingMultiphaseParcelSurfaceReactionModels.H
index bf04b132d6e56bac4872f534f4d64a4c88094deb..576a44e70dbde9944627a74ab96a96e5662bd426 100644
--- a/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeReactingMultiphaseParcelSurfaceReactionModels.H
+++ b/src/lagrangian/intermediate/parcels/include/makeReactingMultiphaseParcelSurfaceReactionModels.H
@@ -36,21 +36,21 @@ License
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-#define createReactingMultiphaseSurfaceReactionModelType(ParcelType)          \
+#define makeReactingMultiphaseSurfaceReactionModels(ParcelType)               \
                                                                               \
-    createReactingMultiphaseSurfaceReactionModelThermoType                    \
+    makeReactingMultiphaseSurfaceReactionModelThermoType                      \
     (                                                                         \
         ParcelType,                                                           \
         specieConstProperties                                                 \
     );                                                                        \
-    createReactingMultiphaseSurfaceReactionModelThermoType                    \
+    makeReactingMultiphaseSurfaceReactionModelThermoType                      \
     (                                                                         \
         ParcelType,                                                           \
         specieReactingProperties                                              \
     );
 
 
-#define createReactingMultiphaseSurfaceReactionModelThermoType(ParcelType, ThermoType)\
+#define makeReactingMultiphaseSurfaceReactionModelThermoType(ParcelType, ThermoType)\
                                                                               \
     makeSurfaceReactionModel                                                  \
     (                                                                         \
diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelCompositionModels.H b/src/lagrangian/intermediate/parcels/include/makeReactingParcelCompositionModels.H
similarity index 92%
rename from src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelCompositionModels.H
rename to src/lagrangian/intermediate/parcels/include/makeReactingParcelCompositionModels.H
index 2f6abe0926a5e87851ed612fde2f0b88ca0d19c4..a8c187ea97f98bdcd624885e33ed7b3931f297e8 100644
--- a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelCompositionModels.H
+++ b/src/lagrangian/intermediate/parcels/include/makeReactingParcelCompositionModels.H
@@ -36,21 +36,21 @@ License
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-#define createReactingCompositionModelType(ParcelType)                        \
+#define makeReactingCompositionModels(ParcelType)                             \
                                                                               \
-    createReactingCompositionModelThermoType                                  \
+    makeReactingCompositionModelThermoType                                    \
     (                                                                         \
         ParcelType,                                                           \
         specieConstProperties                                                 \
     );                                                                        \
-    createReactingCompositionModelThermoType                                  \
+    makeReactingCompositionModelThermoType                                    \
     (                                                                         \
         ParcelType,                                                           \
         specieReactingProperties                                              \
     );
 
 
-#define createReactingCompositionModelThermoType(ParcelType, ThermoType)      \
+#define makeReactingCompositionModelThermoType(ParcelType, ThermoType)        \
                                                                               \
     makeCompositionModel(ReactingCloud<ParcelType<ThermoType> >);             \
                                                                               \
diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelDispersionModels.H b/src/lagrangian/intermediate/parcels/include/makeReactingParcelDispersionModels.H
similarity index 94%
rename from src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelDispersionModels.H
rename to src/lagrangian/intermediate/parcels/include/makeReactingParcelDispersionModels.H
index 23827d50d6336a1674d566a0931992cc1b95483e..eda4122409f694d2c08a06fa3b7a72320baf0fa2 100644
--- a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelDispersionModels.H
+++ b/src/lagrangian/intermediate/parcels/include/makeReactingParcelDispersionModels.H
@@ -38,22 +38,22 @@ License
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-#define createReactingDispersionModelType(ParcelType)                         \
+#define makeReactingDispersionModels(ParcelType)                              \
                                                                               \
-    createReactingDispersionModelThermoType                                   \
+    makeReactingDispersionModelThermoType                                     \
     (                                                                         \
         ParcelType,                                                           \
         specieConstProperties                                                 \
     );                                                                        \
                                                                               \
-    createReactingDispersionModelThermoType                                   \
+    makeReactingDispersionModelThermoType                                     \
     (                                                                         \
         ParcelType,                                                           \
         specieReactingProperties                                              \
     );
 
 
-#define createReactingDispersionModelThermoType(ParcelType, ThermoType)       \
+#define makeReactingDispersionModelThermoType(ParcelType, ThermoType)         \
                                                                               \
     makeDispersionModel(KinematicCloud<ParcelType<ThermoType> >);             \
                                                                               \
diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelDragModels.H b/src/lagrangian/intermediate/parcels/include/makeReactingParcelDragModels.H
similarity index 93%
rename from src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelDragModels.H
rename to src/lagrangian/intermediate/parcels/include/makeReactingParcelDragModels.H
index d919375f8ce0fca53d8f0c3d5560608bed64753f..9ebd900a9320be5c61a1bc34c24629df6ffbf29b 100644
--- a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelDragModels.H
+++ b/src/lagrangian/intermediate/parcels/include/makeReactingParcelDragModels.H
@@ -37,21 +37,21 @@ License
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-#define createReactingDragModelType(ParcelType)                               \
+#define makeReactingDragModels(ParcelType)                                    \
                                                                               \
-    createReactingDragModelThermoType                                         \
+    makeReactingDragModelThermoType                                           \
     (                                                                         \
         ParcelType,                                                           \
         specieConstProperties                                                 \
     );                                                                        \
-    createReactingDragModelThermoType                                         \
+    makeReactingDragModelThermoType                                           \
     (                                                                         \
         ParcelType,                                                           \
         specieReactingProperties                                              \
     );
 
 
-#define createReactingDragModelThermoType(ParcelType, ThermoType)             \
+#define makeReactingDragModelThermoType(ParcelType, ThermoType)               \
                                                                               \
     makeDragModel(KinematicCloud<ParcelType<ThermoType> >);                   \
                                                                               \
diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelHeatTransferModels.H b/src/lagrangian/intermediate/parcels/include/makeReactingParcelHeatTransferModels.H
similarity index 93%
rename from src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelHeatTransferModels.H
rename to src/lagrangian/intermediate/parcels/include/makeReactingParcelHeatTransferModels.H
index 021efc11f45b302fbd2435652538a85ad64be9a2..04938ea27ac4a61857c8c566b921827c264d6f44 100644
--- a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelHeatTransferModels.H
+++ b/src/lagrangian/intermediate/parcels/include/makeReactingParcelHeatTransferModels.H
@@ -37,21 +37,21 @@ License
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-#define createReactingHeatTransferModelType(ParcelType)                       \
+#define makeReactingHeatTransferModels(ParcelType)                            \
                                                                               \
-    createReactingHeatTransferModelThermoType                                 \
+    makeReactingHeatTransferModelThermoType                                   \
     (                                                                         \
         ParcelType,                                                           \
         specieConstProperties                                                 \
     );                                                                        \
-    createReactingHeatTransferModelThermoType                                 \
+    makeReactingHeatTransferModelThermoType                                   \
     (                                                                         \
         ParcelType,                                                           \
         specieReactingProperties                                              \
     );
 
 
-#define createReactingHeatTransferModelThermoType(ParcelType, ThermoType)     \
+#define makeReactingHeatTransferModelThermoType(ParcelType, ThermoType)       \
                                                                               \
     makeHeatTransferModel(ThermoCloud<ParcelType<ThermoType> >);              \
                                                                               \
diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelInjectionModels.H b/src/lagrangian/intermediate/parcels/include/makeReactingParcelInjectionModels.H
similarity index 95%
rename from src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelInjectionModels.H
rename to src/lagrangian/intermediate/parcels/include/makeReactingParcelInjectionModels.H
index 4873eac32cb84a2b626670320ee5cb0cd97aebad..71ab8fbba567b657a2e9f0744ddb3b55466c4b44 100644
--- a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelInjectionModels.H
+++ b/src/lagrangian/intermediate/parcels/include/makeReactingParcelInjectionModels.H
@@ -40,22 +40,22 @@ License
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-#define createReactingInjectionModelType(ParcelType)                          \
+#define makeReactingInjectionModels(ParcelType)                               \
                                                                               \
-    createReactingInjectionModelThermoType                                    \
+    makeReactingInjectionModelThermoType                                      \
     (                                                                         \
         ParcelType,                                                           \
         specieConstProperties                                                 \
     );                                                                        \
                                                                               \
-    createReactingInjectionModelThermoType                                    \
+    makeReactingInjectionModelThermoType                                      \
     (                                                                         \
         ParcelType,                                                           \
         specieReactingProperties                                              \
     );
 
 
-#define createReactingInjectionModelThermoType(ParcelType, ThermoType)        \
+#define makeReactingInjectionModelThermoType(ParcelType, ThermoType)          \
                                                                               \
     makeInjectionModel(KinematicCloud<ParcelType<ThermoType> >);              \
                                                                               \
diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelPatchInteractionModels.H b/src/lagrangian/intermediate/parcels/include/makeReactingParcelPatchInteractionModels.H
similarity index 94%
rename from src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelPatchInteractionModels.H
rename to src/lagrangian/intermediate/parcels/include/makeReactingParcelPatchInteractionModels.H
index 74f4470045b0ce99cdf4606acfe0df9c050037d6..5def8fc43b8ee0ebd3084517a4a2ddfb2973f172 100644
--- a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelPatchInteractionModels.H
+++ b/src/lagrangian/intermediate/parcels/include/makeReactingParcelPatchInteractionModels.H
@@ -38,22 +38,22 @@ License
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-#define createReactingPatchInteractionModelType(ParcelType)                   \
+#define makeReactingPatchInteractionModels(ParcelType)                        \
                                                                               \
-    createReactingPatchInteractionModelThermoType                             \
+    makeReactingPatchInteractionModelThermoType                               \
     (                                                                         \
         ParcelType,                                                           \
         specieConstProperties                                                 \
     );                                                                        \
                                                                               \
-    createReactingPatchInteractionModelThermoType                             \
+    makeReactingPatchInteractionModelThermoType                               \
     (                                                                         \
         ParcelType,                                                           \
         specieReactingProperties                                              \
     );
 
 
-#define createReactingPatchInteractionModelThermoType(ParcelType, ThermoType) \
+#define makeReactingPatchInteractionModelThermoType(ParcelType, ThermoType)   \
                                                                               \
     makePatchInteractionModel(KinematicCloud<ParcelType<ThermoType> >);       \
                                                                               \
diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelPhaseChangeModels.H b/src/lagrangian/intermediate/parcels/include/makeReactingParcelPhaseChangeModels.H
similarity index 93%
rename from src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelPhaseChangeModels.H
rename to src/lagrangian/intermediate/parcels/include/makeReactingParcelPhaseChangeModels.H
index 19e4810b7437c79cc3a230c152bf15cdfb4c1821..a9d6805572c9da41b8b2862ab88b27c5e08a6bde 100644
--- a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelPhaseChangeModels.H
+++ b/src/lagrangian/intermediate/parcels/include/makeReactingParcelPhaseChangeModels.H
@@ -37,22 +37,22 @@ License
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-#define createReactingPhaseChangeModelType(ParcelType)                        \
+#define makeReactingPhaseChangeModels(ParcelType)                             \
                                                                               \
-    createReactingPhaseChangeModelThermoType                                  \
+    makeReactingPhaseChangeModelThermoType                                    \
     (                                                                         \
         ParcelType,                                                           \
         specieConstProperties                                                 \
     );                                                                        \
                                                                               \
-    createReactingPhaseChangeModelThermoType                                  \
+    makeReactingPhaseChangeModelThermoType                                    \
     (                                                                         \
         ParcelType,                                                           \
         specieReactingProperties                                              \
     );
 
 
-#define createReactingPhaseChangeModelThermoType(ParcelType, ThermoType)      \
+#define makeReactingPhaseChangeModelThermoType(ParcelType, ThermoType)        \
                                                                               \
     makePhaseChangeModel(ReactingCloud<ParcelType<ThermoType> >);             \
                                                                               \
diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelPostProcessingModels.H b/src/lagrangian/intermediate/parcels/include/makeReactingParcelPostProcessingModels.H
similarity index 93%
rename from src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelPostProcessingModels.H
rename to src/lagrangian/intermediate/parcels/include/makeReactingParcelPostProcessingModels.H
index 588e643a5b8f9f97576bc7314c4ca88a225137fe..8c6a80e3f53dd3c07146d356225d4ff18cfdd239 100644
--- a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelPostProcessingModels.H
+++ b/src/lagrangian/intermediate/parcels/include/makeReactingParcelPostProcessingModels.H
@@ -37,22 +37,22 @@ License
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-#define createReactingPostProcessingModelType(ParcelType)                     \
+#define makeReactingPostProcessingModels(ParcelType)                          \
                                                                               \
-    createReactingPostProcessingModelThermoType                               \
+    makeReactingPostProcessingModelThermoType                                 \
     (                                                                         \
         ParcelType,                                                           \
         specieConstProperties                                                 \
     );                                                                        \
                                                                               \
-    createReactingPostProcessingModelThermoType                               \
+    makeReactingPostProcessingModelThermoType                                 \
     (                                                                         \
         ParcelType,                                                           \
         specieReactingProperties                                              \
     );
 
 
-#define createReactingPostProcessingModelThermoType(ParcelType, ThermoType)   \
+#define makeReactingPostProcessingModelThermoType(ParcelType, ThermoType)     \
                                                                               \
     makePostProcessingModel(KinematicCloud<ParcelType<ThermoType> >);         \
                                                                               \