diff --git a/src/lagrangian/intermediate/Make/files b/src/lagrangian/intermediate/Make/files
index a38943c85c291458aef87dc5ba46640f1beadb17..d29f2c32bfac3fc619e7cca8c2af55479ead6007 100755
--- a/src/lagrangian/intermediate/Make/files
+++ b/src/lagrangian/intermediate/Make/files
@@ -1,7 +1,7 @@
 /* Parcels */
-parcels/derived/kinematicParcel/kinematicParcel.C
-parcels/derived/thermoParcel/thermoParcel.C
-parcels/derived/reactingParcel/reactingParcel.C
+parcels/derived/basicKinematicParcel/basicKinematicParcel.C
+parcels/derived/basicThermoParcel/basicThermoParcel.C
+parcels/derived/basicReactingParcel/basicReactingParcel.C
 
 /* Cloud base classes */
 clouds/baseClasses/kinematicCloud/kinematicCloud.C
@@ -14,31 +14,31 @@ clouds/derived/basicThermoCloud/basicThermoCloud.C
 clouds/derived/basicReactingCloud/basicReactingCloud.C
 
 /* kinematic parcel sub-models */
-parcels/derived/kinematicParcel/defineKinematicParcel.C
-parcels/derived/kinematicParcel/makeKinematicParcelDispersionModels.C
-parcels/derived/kinematicParcel/makeKinematicParcelDragModels.C
-parcels/derived/kinematicParcel/makeKinematicParcelInjectionModels.C
-parcels/derived/kinematicParcel/makeKinematicParcelHeatTransferModels.C
-parcels/derived/kinematicParcel/makeKinematicParcelWallInteractionModels.C
+parcels/derived/basicKinematicParcel/defineBasicKinematicParcel.C
+parcels/derived/basicKinematicParcel/makeBasicKinematicParcelDispersionModels.C
+parcels/derived/basicKinematicParcel/makeBasicKinematicParcelDragModels.C
+parcels/derived/basicKinematicParcel/makeBasicKinematicParcelInjectionModels.C
+parcels/derived/basicKinematicParcel/makeBasicKinematicParcelHeatTransferModels.C
+parcels/derived/basicKinematicParcel/makeBasicKinematicParcelWallInteractionModels.C
 
 /* thermo parcel sub-models */
-parcels/derived/thermoParcel/defineThermoParcel.C
-parcels/derived/thermoParcel/makeThermoParcelDispersionModels.C
-parcels/derived/thermoParcel/makeThermoParcelDragModels.C
-parcels/derived/thermoParcel/makeThermoParcelInjectionModels.C
-parcels/derived/thermoParcel/makeThermoParcelHeatTransferModels.C
-parcels/derived/thermoParcel/makeThermoParcelWallInteractionModels.C
+parcels/derived/basicThermoParcel/defineBasicThermoParcel.C
+parcels/derived/basicThermoParcel/makeBasicThermoParcelDispersionModels.C
+parcels/derived/basicThermoParcel/makeBasicThermoParcelDragModels.C
+parcels/derived/basicThermoParcel/makeBasicThermoParcelInjectionModels.C
+parcels/derived/basicThermoParcel/makeBasicThermoParcelHeatTransferModels.C
+parcels/derived/basicThermoParcel/makeBasicThermoParcelWallInteractionModels.C
 
 /* reacting parcel sub-models */
-parcels/derived/reactingParcel/defineReactingParcel.C
-parcels/derived/reactingParcel/makeReactingParcelCompositionModels.C
-parcels/derived/reactingParcel/makeReactingParcelDragModels.C
-parcels/derived/reactingParcel/makeReactingParcelDispersionModels.C
-parcels/derived/reactingParcel/makeReactingParcelInjectionModels.C
-parcels/derived/reactingParcel/makeReactingParcelHeatTransferModels.C
-parcels/derived/reactingParcel/makeReactingParcelMassTransferModels.C
-parcels/derived/reactingParcel/makeReactingParcelSurfaceReactionModels.C
-parcels/derived/reactingParcel/makeReactingParcelWallInteractionModels.C
+parcels/derived/basicReactingParcel/defineBasicReactingParcel.C
+parcels/derived/basicReactingParcel/makeBasicReactingParcelCompositionModels.C
+parcels/derived/basicReactingParcel/makeBasicReactingParcelDragModels.C
+parcels/derived/basicReactingParcel/makeBasicReactingParcelDispersionModels.C
+parcels/derived/basicReactingParcel/makeBasicReactingParcelInjectionModels.C
+parcels/derived/basicReactingParcel/makeBasicReactingParcelHeatTransferModels.C
+parcels/derived/basicReactingParcel/makeBasicReactingParcelMassTransferModels.C
+parcels/derived/basicReactingParcel/makeBasicReactingParcelSurfaceReactionModels.C
+parcels/derived/basicReactingParcel/makeBasicReactingParcelWallInteractionModels.C
 
 /* bolt-on models */
 submodels/addOns/radiation/absorptionEmission/cloudAbsorptionEmission/cloudAbsorptionEmission.C
diff --git a/src/lagrangian/intermediate/clouds/derived/basicKinematicCloud/basicKinematicCloud.C b/src/lagrangian/intermediate/clouds/derived/basicKinematicCloud/basicKinematicCloud.C
index 2fb09a503188f9fc412238a0f43981489d4bfdac..77420ccc62a42f500db225b8eb539401e29df5d2 100644
--- a/src/lagrangian/intermediate/clouds/derived/basicKinematicCloud/basicKinematicCloud.C
+++ b/src/lagrangian/intermediate/clouds/derived/basicKinematicCloud/basicKinematicCloud.C
@@ -46,9 +46,9 @@ Foam::basicKinematicCloud::basicKinematicCloud
     const dimensionedVector& g
 )
 :
-    KinematicCloud<kinematicParcel>(cloudType, vpi, rho, U, mu, g)
+    KinematicCloud<basicKinematicParcel>(cloudType, vpi, rho, U, mu, g)
 {
-    kinematicParcel::readFields(*this);
+    basicKinematicParcel::readFields(*this);
 }
 
 
@@ -62,31 +62,31 @@ Foam::basicKinematicCloud::~basicKinematicCloud()
 
 void Foam::basicKinematicCloud::evolve()
 {
-    KinematicCloud<kinematicParcel>::evolve();
+    KinematicCloud<basicKinematicParcel>::evolve();
 }
 
 
 void Foam::basicKinematicCloud::move
 (
-    KinematicParcel<kinematicParcel>::trackData& td
+    KinematicParcel<basicKinematicParcel>::trackData& td
 )
 {
-    KinematicCloud<kinematicParcel>::move(td);
+    KinematicCloud<basicKinematicParcel>::move(td);
 }
 
 
 void Foam::basicKinematicCloud::inject
 (
-    KinematicParcel<kinematicParcel>::trackData& td
+    KinematicParcel<basicKinematicParcel>::trackData& td
 )
 {
-    KinematicCloud<kinematicParcel>::inject(td);
+    KinematicCloud<basicKinematicParcel>::inject(td);
 }
 
 
 void Foam::basicKinematicCloud::writeFields() const
 {
-    kinematicParcel::writeFields(*this);
+    basicKinematicParcel::writeFields(*this);
 }
 
 
diff --git a/src/lagrangian/intermediate/clouds/derived/basicKinematicCloud/basicKinematicCloud.H b/src/lagrangian/intermediate/clouds/derived/basicKinematicCloud/basicKinematicCloud.H
index 41e2914739407602c9fc1b302b6ac117bbb7df54..d4f8204a07703c1307ad4191f2df46ad90417285 100644
--- a/src/lagrangian/intermediate/clouds/derived/basicKinematicCloud/basicKinematicCloud.H
+++ b/src/lagrangian/intermediate/clouds/derived/basicKinematicCloud/basicKinematicCloud.H
@@ -37,7 +37,7 @@ SourceFiles
 #define basicKinematicCloud_H
 
 #include "KinematicCloud.H"
-#include "kinematicParcel.H"
+#include "basicKinematicParcel.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -50,7 +50,7 @@ namespace Foam
 
 class basicKinematicCloud
 :
-    public KinematicCloud<kinematicParcel>
+    public KinematicCloud<basicKinematicParcel>
 {
 
     // Private member functions
@@ -97,13 +97,13 @@ public:
             //- Move the parcels
             void move
             (
-                KinematicParcel<kinematicParcel>::trackData& td
+                KinematicParcel<basicKinematicParcel>::trackData& td
             );
 
             //- Inject more parcels
             void inject
             (
-                KinematicParcel<kinematicParcel>::trackData& td
+                KinematicParcel<basicKinematicParcel>::trackData& td
             );
 
 
diff --git a/src/lagrangian/intermediate/clouds/derived/basicReactingCloud/basicReactingCloud.C b/src/lagrangian/intermediate/clouds/derived/basicReactingCloud/basicReactingCloud.C
index d5582b29de8f57441b02ea6f363c922d662a5ac0..9759d7ad82e3d99fa4bb301688eba628c4a6e1af 100644
--- a/src/lagrangian/intermediate/clouds/derived/basicReactingCloud/basicReactingCloud.C
+++ b/src/lagrangian/intermediate/clouds/derived/basicReactingCloud/basicReactingCloud.C
@@ -47,7 +47,7 @@ Foam::basicReactingCloud::basicReactingCloud
     PtrList<specieReactingProperties>& gases
 )
 :
-    ReactingCloud<reactingParcel>
+    ReactingCloud<basicReactingParcel>
     (
         cloudType,
         vpi,
@@ -58,7 +58,7 @@ Foam::basicReactingCloud::basicReactingCloud
         gases
     )
 {
-    reactingParcel::readFields(*this);
+    basicReactingParcel::readFields(*this);
 }
 
 
@@ -67,31 +67,31 @@ Foam::basicReactingCloud::basicReactingCloud
 
 void Foam::basicReactingCloud::evolve()
 {
-    ReactingCloud<reactingParcel>::evolve();
+    ReactingCloud<basicReactingParcel>::evolve();
 }
 
 
 void Foam::basicReactingCloud::move
 (
-    ReactingParcel<reactingParcel>::trackData& td
+    ReactingParcel<basicReactingParcel>::trackData& td
 )
 {
-    ReactingCloud<reactingParcel>::move(td);
+    ReactingCloud<basicReactingParcel>::move(td);
 }
 
 
 void Foam::basicReactingCloud::inject
 (
-    ReactingParcel<reactingParcel>::trackData& td
+    ReactingParcel<basicReactingParcel>::trackData& td
 )
 {
-    ReactingCloud<reactingParcel>::inject(td);
+    ReactingCloud<basicReactingParcel>::inject(td);
 }
 
 
 void Foam::basicReactingCloud::writeFields() const
 {
-    reactingParcel::writeFields(*this);
+    basicReactingParcel::writeFields(*this);
 }
 
 
diff --git a/src/lagrangian/intermediate/clouds/derived/basicReactingCloud/basicReactingCloud.H b/src/lagrangian/intermediate/clouds/derived/basicReactingCloud/basicReactingCloud.H
index e386760794e38b672c9791dc9a1374311a68ef32..3791b21e355021a1423ac40b0dcfc96f866dc815 100644
--- a/src/lagrangian/intermediate/clouds/derived/basicReactingCloud/basicReactingCloud.H
+++ b/src/lagrangian/intermediate/clouds/derived/basicReactingCloud/basicReactingCloud.H
@@ -36,7 +36,7 @@ SourceFiles
 #define basicReactingCloud_H
 
 #include "ReactingCloud.H"
-#include "reactingParcel.H"
+#include "basicReactingParcel.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -49,7 +49,7 @@ namespace Foam
 
 class basicReactingCloud
 :
-    public ReactingCloud<reactingParcel>
+    public ReactingCloud<basicReactingParcel>
 {
 
     // Private Member Functions
@@ -91,13 +91,13 @@ public:
             //- Move the parcels
             void move
             (
-                ReactingParcel<reactingParcel>::trackData& td
+                ReactingParcel<basicReactingParcel>::trackData& td
             );
 
             //- Inject more parcels
             void inject
             (
-                ReactingParcel<reactingParcel>::trackData& td
+                ReactingParcel<basicReactingParcel>::trackData& td
             );
 
 
diff --git a/src/lagrangian/intermediate/clouds/derived/basicThermoCloud/basicThermoCloud.C b/src/lagrangian/intermediate/clouds/derived/basicThermoCloud/basicThermoCloud.C
index dbc40e04b12174f7384389b0e83a1acd2070346a..2fcb522533abee5bc911d75561ea22486cdef2df 100644
--- a/src/lagrangian/intermediate/clouds/derived/basicThermoCloud/basicThermoCloud.C
+++ b/src/lagrangian/intermediate/clouds/derived/basicThermoCloud/basicThermoCloud.C
@@ -46,9 +46,9 @@ Foam::basicThermoCloud::basicThermoCloud
     basicThermo& thermo
 )
 :
-    ThermoCloud<thermoParcel>(cloudType, vpi, rho, U, g, thermo)
+    ThermoCloud<basicThermoParcel>(cloudType, vpi, rho, U, g, thermo)
 {
-    thermoParcel::readFields(*this);
+    basicThermoParcel::readFields(*this);
 }
 
 
@@ -56,32 +56,32 @@ Foam::basicThermoCloud::basicThermoCloud
 
 void Foam::basicThermoCloud::evolve()
 {
-    ThermoCloud<thermoParcel>::evolve();
+    ThermoCloud<basicThermoParcel>::evolve();
 }
 
 
 void Foam::basicThermoCloud::move
 (
-    ThermoParcel<thermoParcel>::trackData& td
+    ThermoParcel<basicThermoParcel>::trackData& td
 )
 {
     // Move the parcels
-    ThermoCloud<thermoParcel>::move(td);
+    ThermoCloud<basicThermoParcel>::move(td);
 }
 
 
 void Foam::basicThermoCloud::inject
 (
-    ThermoParcel<thermoParcel>::trackData& td
+    ThermoParcel<basicThermoParcel>::trackData& td
 )
 {
-    ThermoCloud<thermoParcel>::inject(td);
+    ThermoCloud<basicThermoParcel>::inject(td);
 }
 
 
 void Foam::basicThermoCloud::writeFields() const
 {
-    thermoParcel::writeFields(*this);
+    basicThermoParcel::writeFields(*this);
 }
 
 
diff --git a/src/lagrangian/intermediate/clouds/derived/basicThermoCloud/basicThermoCloud.H b/src/lagrangian/intermediate/clouds/derived/basicThermoCloud/basicThermoCloud.H
index a7224cadd3fdd27e053b989d649acfba41a87a10..f21e9ff782a240a08ae5414b83dd5d13f5079761 100644
--- a/src/lagrangian/intermediate/clouds/derived/basicThermoCloud/basicThermoCloud.H
+++ b/src/lagrangian/intermediate/clouds/derived/basicThermoCloud/basicThermoCloud.H
@@ -36,7 +36,7 @@ SourceFiles
 #define basicThermoCloud_H
 
 #include "ThermoCloud.H"
-#include "thermoParcel.H"
+#include "basicThermoParcel.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -49,7 +49,7 @@ namespace Foam
 
 class basicThermoCloud
 :
-    public ThermoCloud<thermoParcel>
+    public ThermoCloud<basicThermoParcel>
 {
 
     // Private Member Functions
@@ -94,13 +94,13 @@ public:
             //- Move the parcels
             void move
             (
-                ThermoParcel<thermoParcel>::trackData& td
+                ThermoParcel<basicThermoParcel>::trackData& td
             );
 
             //- Inject more parcels
             void inject
             (
-                ThermoParcel<thermoParcel>::trackData& td
+                ThermoParcel<basicThermoParcel>::trackData& td
             );
 
 
diff --git a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.C b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.C
index 2bd7b794110a13db940d67e4dfa725c82c149698..e8dc87bc307b22adbcd23ad01211272d2a1050e8 100644
--- a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.C
+++ b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.C
@@ -30,9 +30,10 @@ License
 // * * * * * * * * * * *  Protected Member Functions * * * * * * * * * * * * //
 
 template<class ParcelType>
+template<class TrackData>
 void Foam::KinematicParcel<ParcelType>::updateCellQuantities
 (
-    trackData& td,
+    TrackData& td,
     const scalar dt,
     const label celli
 )
@@ -55,9 +56,10 @@ void Foam::KinematicParcel<ParcelType>::updateCellQuantities
 
 
 template<class ParcelType>
+template<class TrackData>
 void Foam::KinematicParcel<ParcelType>::calcCoupled
 (
-    trackData& td,
+    TrackData& td,
     const scalar dt,
     const label celli
 )
@@ -103,10 +105,12 @@ void Foam::KinematicParcel<ParcelType>::calcCoupled
 
 
 template<class ParcelType>
+template<class TrackData>
 void Foam::KinematicParcel<ParcelType>::calcUncoupled
 (
-    trackData& td,
-    const scalar dt
+    TrackData& td,
+    const scalar dt,
+    const label
 )
 {
     // ~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -126,9 +130,10 @@ void Foam::KinematicParcel<ParcelType>::calcUncoupled
 
 
 template<class ParcelType>
+template<class TrackData>
 Foam::vector Foam::KinematicParcel<ParcelType>::calcVelocity
 (
-    trackData& td,
+    TrackData& td,
     const scalar dt,
     scalar& Cud,
     vector& dUTrans
@@ -192,12 +197,15 @@ Foam::vector Foam::KinematicParcel<ParcelType>::calcVelocity
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
-template <class ParcelType>
+template<class ParcelType>
+template<class TrackData>
 bool Foam::KinematicParcel<ParcelType>::move
 (
-    trackData& td
+    TrackData& td
 )
 {
+    ParcelType& p = static_cast<ParcelType&>(*this);
+
     td.switchProcessor = false;
     td.keepParticle = true;
 
@@ -205,7 +213,7 @@ bool Foam::KinematicParcel<ParcelType>::move
     const polyBoundaryMesh& pbMesh = mesh.boundaryMesh();
 
     const scalar deltaT = mesh.time().deltaT().value();
-    scalar tEnd = (1.0 - this->stepFraction())*deltaT;
+    scalar tEnd = (1.0 - p.stepFraction())*deltaT;
     const scalar dtMax = tEnd;
 
     while (td.keepParticle && !td.switchProcessor && tEnd > SMALL)
@@ -215,33 +223,33 @@ bool Foam::KinematicParcel<ParcelType>::move
 
         // Remember which cell the Parcel is in
         // since this will change if a face is hit
-        label celli = this->cell();
+        label celli = p.cell();
 
-        dt *= this->trackToFace(this->position() + dt*U_, td);
+        dt *= p.trackToFace(p.position() + dt*U_, td);
 
         tEnd -= dt;
-        this->stepFraction() = 1.0 - tEnd/deltaT;
+        p.stepFraction() = 1.0 - tEnd/deltaT;
 
         // Update cell based properties
-        updateCellQuantities(td, dt, celli);
+        p.updateCellQuantities(td, dt, celli);
 
         if (td.cloud().coupled())
         {
-            calcCoupled(td, dt, celli);
+            p.calcCoupled(td, dt, celli);
         }
         else
         {
-            calcUncoupled(td, dt);
+            p.calcUncoupled(td, dt, celli);
         }
 
-        if (this->onBoundary() && td.keepParticle)
+        if (p.onBoundary() && td.keepParticle)
         {
-            if (this->face() > -1)
+            if (p.face() > -1)
             {
                 if
                 (
                     isType<processorPolyPatch>
-                        (pbMesh[this->patch(this->face())])
+                        (pbMesh[p.patch(p.face())])
                 )
                 {
                     td.switchProcessor = true;
@@ -254,8 +262,8 @@ bool Foam::KinematicParcel<ParcelType>::move
 }
 
 
-template <class ParcelType>
-template <class TrackData>
+template<class ParcelType>
+template<class TrackData>
 void Foam::KinematicParcel<ParcelType>::hitProcessorPatch
 (
     const processorPolyPatch&,
@@ -266,7 +274,7 @@ void Foam::KinematicParcel<ParcelType>::hitProcessorPatch
 }
 
 
-template <class ParcelType>
+template<class ParcelType>
 void Foam::KinematicParcel<ParcelType>::hitProcessorPatch
 (
     const processorPolyPatch&,
@@ -275,8 +283,8 @@ void Foam::KinematicParcel<ParcelType>::hitProcessorPatch
 {}
 
 
-template <class ParcelType>
-template <class TrackData>
+template<class ParcelType>
+template<class TrackData>
 void Foam::KinematicParcel<ParcelType>::hitWallPatch
 (
     const wallPolyPatch& wpp,
@@ -287,7 +295,7 @@ void Foam::KinematicParcel<ParcelType>::hitWallPatch
 }
 
 
-template <class ParcelType>
+template<class ParcelType>
 void Foam::KinematicParcel<ParcelType>::hitWallPatch
 (
     const wallPolyPatch&,
@@ -296,8 +304,8 @@ void Foam::KinematicParcel<ParcelType>::hitWallPatch
 {}
 
 
-template <class ParcelType>
-template <class TrackData>
+template<class ParcelType>
+template<class TrackData>
 void Foam::KinematicParcel<ParcelType>::hitPatch
 (
     const polyPatch&,
@@ -308,7 +316,7 @@ void Foam::KinematicParcel<ParcelType>::hitPatch
 }
 
 
-template <class ParcelType>
+template<class ParcelType>
 void Foam::KinematicParcel<ParcelType>::hitPatch
 (
     const polyPatch&,
@@ -317,7 +325,7 @@ void Foam::KinematicParcel<ParcelType>::hitPatch
 {}
 
 
-template <class ParcelType>
+template<class ParcelType>
 void Foam::KinematicParcel<ParcelType>::transformProperties
 (
     const tensor& T
@@ -328,7 +336,7 @@ void Foam::KinematicParcel<ParcelType>::transformProperties
 }
 
 
-template <class ParcelType>
+template<class ParcelType>
 void Foam::KinematicParcel<ParcelType>::transformProperties
 (
     const vector& separation
diff --git a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.H b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.H
index 958c5808b848da84da3624ce64b5e572c8f6147f..896401074069f3ac98ee5b2d30c28014e33f7216 100644
--- a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.H
+++ b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.H
@@ -72,7 +72,7 @@ Ostream& operator<<
                          Class KinematicParcel Declaration
 \*---------------------------------------------------------------------------*/
 
-template <class ParcelType>
+template<class ParcelType>
 class KinematicParcel
 :
     public Particle<ParcelType>
@@ -95,7 +95,7 @@ public:
 
     public:
 
-        // Constructors
+        //- Constructor
         constantProperties
         (
             const dictionary& dict
@@ -212,30 +212,11 @@ protected:
 
     // Protected member functions
 
-        virtual void updateCellQuantities
-        (
-            trackData& td,
-            const scalar dt,
-            const label celli
-        );
-
-        virtual void calcCoupled
-        (
-            trackData& td,
-            const scalar dt,
-            const label celli
-        );
-
-        virtual void calcUncoupled
-        (
-            trackData& td,
-            const scalar dt
-        );
-
         //- Calculate new particle velocity
-        virtual vector calcVelocity
+        template<class TrackData>
+        vector calcVelocity
         (
-            trackData& td,
+            TrackData& td,
             const scalar dt,
             scalar& Cud,
             vector& dUTrans
@@ -336,12 +317,43 @@ public:
             inline scalar areaS() const;
 
 
+        // Main calculation loop
+
+            //- Update cell based quantities
+            template<class TrackData>
+            void updateCellQuantities
+            (
+                TrackData& td,
+                const scalar dt,
+                const label celli
+            );
+
+            //- Coupled calculation with the continuous phase
+            template<class TrackData>
+            void calcCoupled
+            (
+                TrackData& td,
+                const scalar dt,
+                const label celli
+            );
+
+            //- Uncoupled calculation with the continuous phase
+            template<class TrackData>
+            void calcUncoupled
+            (
+                TrackData& td,
+                const scalar dt,
+                const label
+            );
+
+
         // Tracking
 
             //- Move the parcel
-            virtual bool move
+            template<class TrackData>
+            bool move
             (
-                trackData& td
+                TrackData& td
             );
 
 
diff --git a/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.C b/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.C
index 298d6ea1ac33e7f2f79f3832ce3420c5389260d2..e1bae0e5f712e4bf7d70220f00fdbf46c6bf1156 100644
--- a/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.C
+++ b/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.C
@@ -29,9 +29,10 @@ License
 // * * * * * * * * * * *  Protected Member Functions * * * * * * * * * * * * //
 
 template<class ParcelType>
+template<class TrackData>
 void Foam::ReactingParcel<ParcelType>::updateCellQuantities
 (
-    trackData& td,
+    TrackData& td,
     const scalar dt,
     const label celli
 )
@@ -43,9 +44,10 @@ void Foam::ReactingParcel<ParcelType>::updateCellQuantities
 
 
 template<class ParcelType>
+template<class TrackData>
 void Foam::ReactingParcel<ParcelType>::calcCoupled
 (
-    trackData& td,
+    TrackData& td,
     const scalar dt,
     const label celli
 )
@@ -190,9 +192,10 @@ void Foam::ReactingParcel<ParcelType>::calcCoupled
 
 
 template<class ParcelType>
+template<class TrackData>
 void Foam::ReactingParcel<ParcelType>::calcUncoupled
 (
-    trackData& td,
+    TrackData& td,
     const scalar dt,
     const label celli
 )
@@ -315,9 +318,10 @@ void Foam::ReactingParcel<ParcelType>::calcUncoupled
 
 
 template<class ParcelType>
+template<class TrackData>
 void Foam::ReactingParcel<ParcelType>::calcMassTransfer
 (
-    trackData& td,
+    TrackData& td,
     const scalar dt,
     const scalar T0,
     const scalar T1,
@@ -377,9 +381,10 @@ void Foam::ReactingParcel<ParcelType>::calcMassTransfer
 
 
 template<class ParcelType>
+template<class TrackData>
 void Foam::ReactingParcel<ParcelType>::calcSurfaceReactions
 (
-    trackData& td,
+    TrackData& td,
     const scalar dt,
     const label celli,
     const scalar T0,
diff --git a/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.H b/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.H
index 681fc7f2f73b2d53d5ce0fac6587cf5e104de583..3bdd242cdca3a26c5e22af8101e0bdddb25e2fdb 100644
--- a/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.H
+++ b/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.H
@@ -187,31 +187,11 @@ protected:
 
     // Protected member functions
 
-        virtual void updateCellQuantities
-        (
-            trackData& td,
-            const scalar dt,
-            const label celli
-        );
-
-        virtual void calcCoupled
-        (
-            trackData& td,
-            const scalar dt,
-            const label celli
-        );
-
-        virtual void calcUncoupled
-        (
-            trackData& td,
-            const scalar dt,
-            const label celli
-        );
-
         //- Calculate mass transfer
-        virtual void calcMassTransfer
+        template<class TrackData>
+        void calcMassTransfer
         (
-            trackData& td,
+            TrackData& td,
             const scalar dt,
             const scalar T0,
             const scalar T1,
@@ -219,9 +199,10 @@ protected:
         );
 
         //- Calculate surface reactions
-        virtual void calcSurfaceReactions
+        template<class TrackData>
+        void calcSurfaceReactions
         (
-            trackData& td,
+            TrackData& td,
             const scalar dt,
             const label celli,
             const scalar T0,
@@ -298,6 +279,36 @@ public:
             inline scalar& mass0();
 
 
+        // Main calculation loop
+
+            //- Update cell based quantities
+            template<class TrackData>
+            void updateCellQuantities
+            (
+                TrackData& td,
+                const scalar dt,
+                const label celli
+            );
+
+            //- Coupled calculation with the continuous phase
+            template<class TrackData>
+            void calcCoupled
+            (
+                TrackData& td,
+                const scalar dt,
+                const label celli
+            );
+
+            //- Uncoupled calculation with the continuous phase
+            template<class TrackData>
+            void calcUncoupled
+            (
+                TrackData& td,
+                const scalar dt,
+                const label
+            );
+
+
         // I-O
 
             static void readFields
diff --git a/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.C b/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.C
index ab403905be53383a9e3d49eab3385fefdc763a1d..b1effd166faeb5b2dfdc0569a51272b89f9d4fc5 100644
--- a/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.C
+++ b/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.C
@@ -29,9 +29,10 @@ License
 // * * * * * * * * * * *  Protected Member Functions * * * * * * * * * * * * //
 
 template<class ParcelType>
+template<class TrackData>
 void Foam::ThermoParcel<ParcelType>::updateCellQuantities
 (
-    trackData& td,
+    TrackData& td,
     const scalar dt,
     const label celli
 )
@@ -44,9 +45,10 @@ void Foam::ThermoParcel<ParcelType>::updateCellQuantities
 
 
 template<class ParcelType>
+template<class TrackData>
 void Foam::ThermoParcel<ParcelType>::calcCoupled
 (
-    trackData& td,
+    TrackData& td,
     const scalar dt,
     const label celli
 )
@@ -112,9 +114,10 @@ void Foam::ThermoParcel<ParcelType>::calcCoupled
 
 
 template<class ParcelType>
+template<class TrackData>
 void Foam::ThermoParcel<ParcelType>::calcUncoupled
 (
-    trackData& td,
+    TrackData& td,
     const scalar dt,
     const label celli
 )
@@ -146,9 +149,10 @@ void Foam::ThermoParcel<ParcelType>::calcUncoupled
 
 
 template<class ParcelType>
+template <class TrackData>
 Foam::scalar Foam::ThermoParcel<ParcelType>::calcHeatTransfer
 (
-    trackData& td,
+    TrackData& td,
     const scalar dt,
     const label celli,
     scalar& htc,
@@ -201,8 +205,6 @@ Foam::scalar Foam::ThermoParcel<ParcelType>::calcHeatTransfer
 
     scalar Tnew = td.cloud().TIntegrator().integrate(T_, dt, ap, bp);
 
-    Info<< "T_, Tnew = " << T_ << ", " << Tnew << endl;
-
     dhTrans = -this->mass()*cp_*(Tnew - T_);
 
     return Tnew;
diff --git a/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.H b/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.H
index 8753ee8633326190e2fff11929b3b51ded8d7582..83b3c8bd2beea49c2f11a9e301cedaa51f273237 100644
--- a/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.H
+++ b/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.H
@@ -67,7 +67,7 @@ Ostream& operator<<
                        Class ThermoParcel Declaration
 \*---------------------------------------------------------------------------*/
 
-template <class ParcelType>
+template<class ParcelType>
 class ThermoParcel
 :
     public KinematicParcel<ParcelType>
@@ -188,31 +188,11 @@ protected:
 
     // Protected member functions
 
-        virtual void updateCellQuantities
-        (
-            trackData& td,
-            const scalar dt,
-            const label celli
-        );
-
-        virtual void calcCoupled
-        (
-            trackData& td,
-            const scalar dt,
-            const label celli
-        );
-
-        virtual void calcUncoupled
-        (
-            trackData& td,
-            const scalar dt,
-            const label celli
-        );
-
         //- Calculate new particle temperature
-        virtual scalar calcHeatTransfer
+        template<class TrackData>
+        scalar calcHeatTransfer
         (
-            trackData& td,
+            TrackData& td,
             const scalar dt,
             const label celli,
             scalar& htc,
@@ -271,6 +251,36 @@ public:
             inline scalar& cp();
 
 
+        // Main calculation loop
+
+            //- Update cell based quantities
+            template<class TrackData>
+            void updateCellQuantities
+            (
+                TrackData& td,
+                const scalar dt,
+                const label celli
+            );
+
+            //- Coupled calculation with the continuous phase
+            template<class TrackData>
+            void calcCoupled
+            (
+                TrackData& td,
+                const scalar dt,
+                const label celli
+            );
+
+            //- Uncoupled calculation with the continuous phase
+            template<class TrackData>
+            void calcUncoupled
+            (
+                TrackData& td,
+                const scalar dt,
+                const label
+            );
+
+
         // I-O
 
             static void readFields
diff --git a/src/lagrangian/intermediate/parcels/derived/kinematicParcel/kinematicParcel.C b/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/basicKinematicParcel.C
similarity index 77%
rename from src/lagrangian/intermediate/parcels/derived/kinematicParcel/kinematicParcel.C
rename to src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/basicKinematicParcel.C
index a33e3e37b32def4829cf86e6d0dc6d6a2b845ff0..c9957044f6a294917093cc6cf1ae8bfa3fd75e19 100644
--- a/src/lagrangian/intermediate/parcels/derived/kinematicParcel/kinematicParcel.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/basicKinematicParcel.C
@@ -24,23 +24,23 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "kinematicParcel.H"
+#include "basicKinematicParcel.H"
 
 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
 
 namespace Foam
 {
-    defineTypeNameAndDebug(kinematicParcel, 0);
-    defineParticleTypeNameAndDebug(kinematicParcel, 0);
-    defineParcelTypeNameAndDebug(kinematicParcel, 0);
+    defineTypeNameAndDebug(basicKinematicParcel, 0);
+    defineParticleTypeNameAndDebug(basicKinematicParcel, 0);
+    defineParcelTypeNameAndDebug(basicKinematicParcel, 0);
 };
 
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-Foam::kinematicParcel::kinematicParcel
+Foam::basicKinematicParcel::basicKinematicParcel
 (
-    KinematicCloud<kinematicParcel>& owner,
+    KinematicCloud<basicKinematicParcel>& owner,
     const label typeId,
     const vector& position,
     const label celli,
@@ -50,7 +50,7 @@ Foam::kinematicParcel::kinematicParcel
     const constantProperties& constProps
 )
 :
-    KinematicParcel<kinematicParcel>
+    KinematicParcel<basicKinematicParcel>
     (
         owner,
         typeId,
@@ -64,20 +64,20 @@ Foam::kinematicParcel::kinematicParcel
 {}
 
 
-Foam::kinematicParcel::kinematicParcel
+Foam::basicKinematicParcel::basicKinematicParcel
 (
-    const Cloud<kinematicParcel>& cloud,
+    const Cloud<basicKinematicParcel>& cloud,
     Istream& is,
     bool readFields
 )
 :
-    KinematicParcel<kinematicParcel>(cloud, is, readFields)
+    KinematicParcel<basicKinematicParcel>(cloud, is, readFields)
 {}
 
 
 // * * * * * * * * * * * * * * * *  Destructors  * * * * * * * * * * * * * * //
 
-Foam::kinematicParcel::~kinematicParcel()
+Foam::basicKinematicParcel::~basicKinematicParcel()
 {}
 
 
diff --git a/src/lagrangian/intermediate/parcels/derived/kinematicParcel/kinematicParcel.H b/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/basicKinematicParcel.H
similarity index 76%
rename from src/lagrangian/intermediate/parcels/derived/kinematicParcel/kinematicParcel.H
rename to src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/basicKinematicParcel.H
index 681072b6538cd134b03eeb509464b740047f7cc1..bb43934aa0f1a853d4aeb6417fc7a451905f1a85 100644
--- a/src/lagrangian/intermediate/parcels/derived/kinematicParcel/kinematicParcel.H
+++ b/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/basicKinematicParcel.H
@@ -23,18 +23,18 @@ License
     Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
 
 Class
-    Foam::kinematicParcel
+    Foam::basicKinematicParcel
 
 Description
 
 
 SourceFiles
-    kinematicParcel.C
+    basicKinematicParcel.C
 
 \*---------------------------------------------------------------------------*/
 
-#ifndef kinematicParcel_H
-#define kinematicParcel_H
+#ifndef basicKinematicParcel_H
+#define basicKinematicParcel_H
 
 #include "KinematicParcel.H"
 
@@ -44,26 +44,26 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-                         Class kinematicParcel Declaration
+                         Class basicKinematicParcel Declaration
 \*---------------------------------------------------------------------------*/
 
-class kinematicParcel
+class basicKinematicParcel
 :
-    public KinematicParcel<kinematicParcel>
+    public KinematicParcel<basicKinematicParcel>
 {
 
 public:
 
     //- Run-time type information
-    TypeName("kinematicParcel");
+    TypeName("basicKinematicParcel");
 
 
     // Constructors
 
         //- Construct from components
-        kinematicParcel
+        basicKinematicParcel
         (
-            KinematicCloud<kinematicParcel>& owner,
+            KinematicCloud<basicKinematicParcel>& owner,
             const label typeId,
             const vector& position,
             const label celli,
@@ -74,28 +74,29 @@ public:
         );
 
         //- Construct from Istream
-        kinematicParcel
+        basicKinematicParcel
         (
-            const Cloud<kinematicParcel>& c,
+            const Cloud<basicKinematicParcel>& c,
             Istream& is,
             bool readFields = true
         );
 
         //- Construct and return a clone
-        autoPtr<kinematicParcel> clone() const
+        autoPtr<basicKinematicParcel> clone() const
         {
-            return autoPtr<kinematicParcel>(new kinematicParcel(*this));
+            return autoPtr<basicKinematicParcel>
+                (new basicKinematicParcel(*this));
         }
 
 
-    // Destructors
+    //- Destructor
 
-        virtual ~kinematicParcel();
+        virtual ~basicKinematicParcel();
 };
 
 
 template<>
-inline bool contiguous<kinematicParcel>()
+inline bool contiguous<basicKinematicParcel>()
 {
     return true;
 }
diff --git a/src/lagrangian/intermediate/parcels/derived/kinematicParcel/defineKinematicParcel.C b/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/defineBasicKinematicParcel.C
similarity index 80%
rename from src/lagrangian/intermediate/parcels/derived/kinematicParcel/defineKinematicParcel.C
rename to src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/defineBasicKinematicParcel.C
index 0ad0793203f420360440387dff1f2d59a460f29b..452b53e9da27d80132bbba6a4bc6665dfc9d3ec1 100644
--- a/src/lagrangian/intermediate/parcels/derived/kinematicParcel/defineKinematicParcel.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/defineBasicKinematicParcel.C
@@ -24,17 +24,17 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "kinematicParcel.H"
+#include "basicKinematicParcel.H"
 #include "KinematicCloud.H"
 
 namespace Foam
 {
-//    defineTemplateTypeNameAndDebug(IOPosition<kinematicParcel>, 0);
+//    defineTemplateTypeNameAndDebug(IOPosition<basicKinematicParcel>, 0);
 
-    defineTemplateTypeNameAndDebug(Cloud<kinematicParcel>, 0);
+    defineTemplateTypeNameAndDebug(Cloud<basicKinematicParcel>, 0);
 
-    defineParcelTypeNameAndDebug(KinematicCloud<kinematicParcel>, 0);
-//    defineTemplateTypeNameAndDebug(KinematicCloud<kinematicParcel>, 0);
+    defineParcelTypeNameAndDebug(KinematicCloud<basicKinematicParcel>, 0);
+//    defineTemplateTypeNameAndDebug(KinematicCloud<basicKinematicParcel>, 0);
 };
 
 
diff --git a/src/lagrangian/intermediate/parcels/derived/kinematicParcel/makeKinematicParcelDispersionModels.C b/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/makeBasicKinematicParcelDispersionModels.C
similarity index 88%
rename from src/lagrangian/intermediate/parcels/derived/kinematicParcel/makeKinematicParcelDispersionModels.C
rename to src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/makeBasicKinematicParcelDispersionModels.C
index 595edb2947f7e95fe9448a74c89897d0516fa4b6..74b29d8d43ec9a1ab7168ebb8e29fcafc2e8ceb7 100644
--- a/src/lagrangian/intermediate/parcels/derived/kinematicParcel/makeKinematicParcelDispersionModels.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/makeBasicKinematicParcelDispersionModels.C
@@ -24,7 +24,7 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "kinematicParcel.H"
+#include "basicKinematicParcel.H"
 #include "KinematicCloud.H"
 #include "NoDispersion.H"
 #include "GradientDispersionRAS.H"
@@ -32,11 +32,11 @@ License
 
 namespace Foam
 {
-    makeDispersionModel(KinematicCloud<kinematicParcel>);
+    makeDispersionModel(KinematicCloud<basicKinematicParcel>);
 
     defineNamedTemplateTypeNameAndDebug
     (
-        DispersionRASModel<KinematicCloud<kinematicParcel> >,
+        DispersionRASModel<KinematicCloud<basicKinematicParcel> >,
         0
     );
 
@@ -45,19 +45,19 @@ namespace Foam
     (
         NoDispersion,
         KinematicCloud,
-        kinematicParcel
+        basicKinematicParcel
     );
     makeDispersionModelType
     (
         GradientDispersionRAS,
         KinematicCloud,
-        kinematicParcel
+        basicKinematicParcel
     );
     makeDispersionModelType
     (
         StochasticDispersionRAS,
         KinematicCloud,
-        kinematicParcel
+        basicKinematicParcel
     );
 };
 
diff --git a/src/lagrangian/intermediate/parcels/derived/reactingParcel/makeReactingParcelDragModels.C b/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/makeBasicKinematicParcelDragModels.C
similarity index 86%
rename from src/lagrangian/intermediate/parcels/derived/reactingParcel/makeReactingParcelDragModels.C
rename to src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/makeBasicKinematicParcelDragModels.C
index 65a35d79a0ee4e5ad29b86f8045b21a7a0b3eb94..82af0bb1e6e9bfd8dadb2b36d883cebecd4f3358 100644
--- a/src/lagrangian/intermediate/parcels/derived/reactingParcel/makeReactingParcelDragModels.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/makeBasicKinematicParcelDragModels.C
@@ -24,18 +24,18 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "reactingParcel.H"
+#include "basicKinematicParcel.H"
 #include "KinematicCloud.H"
 #include "NoDrag.H"
 #include "SphereDrag.H"
 
 namespace Foam
 {
-    makeDragModel(KinematicCloud<reactingParcel>);
+    makeDragModel(KinematicCloud<basicKinematicParcel>);
 
     // Add instances of drag model to the table
-    makeDragModelType(NoDrag, KinematicCloud, reactingParcel);
-    makeDragModelType(SphereDrag, KinematicCloud, reactingParcel);
+    makeDragModelType(NoDrag, KinematicCloud, basicKinematicParcel);
+    makeDragModelType(SphereDrag, KinematicCloud, basicKinematicParcel);
 };
 
 
diff --git a/src/lagrangian/intermediate/parcels/derived/kinematicParcel/makeKinematicParcelHeatTransferModels.C b/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/makeBasicKinematicParcelHeatTransferModels.C
similarity index 86%
rename from src/lagrangian/intermediate/parcels/derived/kinematicParcel/makeKinematicParcelHeatTransferModels.C
rename to src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/makeBasicKinematicParcelHeatTransferModels.C
index 6a5eaa11f935cef746024dc89a1e713564c5bb53..34740bd6a867fc57db1f07fffa53a8784c013c5d 100644
--- a/src/lagrangian/intermediate/parcels/derived/kinematicParcel/makeKinematicParcelHeatTransferModels.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/makeBasicKinematicParcelHeatTransferModels.C
@@ -24,16 +24,21 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "kinematicParcel.H"
+#include "basicKinematicParcel.H"
 #include "KinematicCloud.H"
 #include "NoHeatTransfer.H"
 
 namespace Foam
 {
-    makeHeatTransferModel(KinematicCloud<kinematicParcel>);
+    makeHeatTransferModel(KinematicCloud<basicKinematicParcel>);
 
     // Add instances of heat transfer model to the table
-    makeHeatTransferModelType(NoHeatTransfer, KinematicCloud, kinematicParcel);
+    makeHeatTransferModelType
+    (
+        NoHeatTransfer,
+        KinematicCloud,
+        basicKinematicParcel
+    );
 };
 
 
diff --git a/src/lagrangian/intermediate/parcels/derived/kinematicParcel/makeKinematicParcelInjectionModels.C b/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/makeBasicKinematicParcelInjectionModels.C
similarity index 81%
rename from src/lagrangian/intermediate/parcels/derived/kinematicParcel/makeKinematicParcelInjectionModels.C
rename to src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/makeBasicKinematicParcelInjectionModels.C
index bb6e400393b4adcbc9a3b3e4a35e579a25fdcf83..7b72076611baaf8ad74f867e97754b6ffcdf3a65 100644
--- a/src/lagrangian/intermediate/parcels/derived/kinematicParcel/makeKinematicParcelInjectionModels.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/makeBasicKinematicParcelInjectionModels.C
@@ -24,18 +24,28 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "kinematicParcel.H"
+#include "basicKinematicParcel.H"
 #include "KinematicCloud.H"
 #include "ManualInjection.H"
 #include "NoInjection.H"
 
 namespace Foam
 {
-    makeInjectionModel(KinematicCloud<kinematicParcel>);
+    makeInjectionModel(KinematicCloud<basicKinematicParcel>);
 
     // Add instances of injection model to the table
-    makeInjectionModelType(ManualInjection, KinematicCloud, kinematicParcel);
-    makeInjectionModelType(NoInjection, KinematicCloud, kinematicParcel);
+    makeInjectionModelType
+    (
+        ManualInjection,
+        KinematicCloud,
+        basicKinematicParcel
+    );
+    makeInjectionModelType
+    (
+        NoInjection,
+        KinematicCloud,
+        basicKinematicParcel
+    );
 };
 
 
diff --git a/src/lagrangian/intermediate/parcels/derived/reactingParcel/makeReactingParcelWallInteractionModels.C b/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/makeBasicKinematicParcelWallInteractionModels.C
similarity index 89%
rename from src/lagrangian/intermediate/parcels/derived/reactingParcel/makeReactingParcelWallInteractionModels.C
rename to src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/makeBasicKinematicParcelWallInteractionModels.C
index c3f551887df5ebe127e11687c3c00635441dfea5..1adc3b927181841a2f2748560540e9cc1af46df5 100644
--- a/src/lagrangian/intermediate/parcels/derived/reactingParcel/makeReactingParcelWallInteractionModels.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/makeBasicKinematicParcelWallInteractionModels.C
@@ -24,28 +24,27 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "reactingParcel.H"
+#include "basicKinematicParcel.H"
 #include "KinematicCloud.H"
 #include "Rebound.H"
 #include "StandardWallInteraction.H"
 
 namespace Foam
 {
-    makeWallInteractionModel(KinematicCloud<reactingParcel>);
-//    makeWallInteractionModel(ReactingCloud<reactingParcel>);
+    makeWallInteractionModel(KinematicCloud<basicKinematicParcel>);
 
     // Add instances of wall interaction model to the table
     makeWallInteractionModelType
     (
         Rebound,
         KinematicCloud,
-        reactingParcel
+        basicKinematicParcel
     );
     makeWallInteractionModelType
     (
         StandardWallInteraction,
         KinematicCloud,
-        reactingParcel
+        basicKinematicParcel
     );
 };
 
diff --git a/src/lagrangian/intermediate/parcels/derived/reactingParcel/reactingParcel.C b/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/basicReactingParcel.C
similarity index 79%
rename from src/lagrangian/intermediate/parcels/derived/reactingParcel/reactingParcel.C
rename to src/lagrangian/intermediate/parcels/derived/basicReactingParcel/basicReactingParcel.C
index 9e445058dd77e02156a90b32ce0c3c65e117883f..d6a4c14f8fe1ef0af66dd68c49cb08eb8cc91416 100644
--- a/src/lagrangian/intermediate/parcels/derived/reactingParcel/reactingParcel.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/basicReactingParcel.C
@@ -24,23 +24,23 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "reactingParcel.H"
+#include "basicReactingParcel.H"
 
 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
 
 namespace Foam
 {
-    defineTypeNameAndDebug(reactingParcel, 0);
-    defineParticleTypeNameAndDebug(reactingParcel, 0);
-    defineParcelTypeNameAndDebug(reactingParcel, 0);
+    defineTypeNameAndDebug(basicReactingParcel, 0);
+    defineParticleTypeNameAndDebug(basicReactingParcel, 0);
+    defineParcelTypeNameAndDebug(basicReactingParcel, 0);
 };
 
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-Foam::reactingParcel::reactingParcel
+Foam::basicReactingParcel::basicReactingParcel
 (
-    ReactingCloud<reactingParcel>& owner,
+    ReactingCloud<basicReactingParcel>& owner,
     const label typeId,
     const vector& position,
     const label celli,
@@ -54,7 +54,7 @@ Foam::reactingParcel::reactingParcel
     const constantProperties& constProps
 )
 :
-    ReactingParcel<reactingParcel>
+    ReactingParcel<basicReactingParcel>
     (
         owner,
         typeId,
@@ -72,20 +72,20 @@ Foam::reactingParcel::reactingParcel
 {}
 
 
-Foam::reactingParcel::reactingParcel
+Foam::basicReactingParcel::basicReactingParcel
 (
-    const Cloud<reactingParcel>& cloud,
+    const Cloud<basicReactingParcel>& cloud,
     Istream& is,
     bool readFields
 )
 :
-    ReactingParcel<reactingParcel>(cloud, is, readFields)
+    ReactingParcel<basicReactingParcel>(cloud, is, readFields)
 {}
 
 
 // * * * * * * * * * * * * * * * *  Destructors  * * * * * * * * * * * * * * //
 
-Foam::reactingParcel::~reactingParcel()
+Foam::basicReactingParcel::~basicReactingParcel()
 {}
 
 
diff --git a/src/lagrangian/intermediate/parcels/derived/reactingParcel/reactingParcel.H b/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/basicReactingParcel.H
similarity index 78%
rename from src/lagrangian/intermediate/parcels/derived/reactingParcel/reactingParcel.H
rename to src/lagrangian/intermediate/parcels/derived/basicReactingParcel/basicReactingParcel.H
index bc85d0610c290eb9ca373f2929e0ec26a4e3e083..98af0d0e0fdccfae2b5a150e4861c12315374f32 100644
--- a/src/lagrangian/intermediate/parcels/derived/reactingParcel/reactingParcel.H
+++ b/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/basicReactingParcel.H
@@ -23,19 +23,19 @@ License
     Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
 
 Class
-    Foam::reactingParcel
+    Foam::basicReactingParcel
 
 Description
 
 
 SourceFiles
-    reactingParcel.C
-    reactingParcelIO.C
+    basicReactingParcel.C
+    basicReactingParcelIO.C
 
 \*---------------------------------------------------------------------------*/
 
-#ifndef reactingParcel_H
-#define reactingParcel_H
+#ifndef basicReactingParcel_H
+#define basicReactingParcel_H
 
 #include "ReactingParcel.H"
 
@@ -45,25 +45,25 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-                        Class reactingParcel Declaration
+                        Class basicReactingParcel Declaration
 \*---------------------------------------------------------------------------*/
 
-class reactingParcel
+class basicReactingParcel
 :
-    public ReactingParcel<reactingParcel>
+    public ReactingParcel<basicReactingParcel>
 {
 
 public:
 
     //- Run-time type information
-    TypeName("reactingParcel");
+    TypeName("basicReactingParcel");
 
     // Constructors
 
         //- Construct from components
-        reactingParcel
+        basicReactingParcel
         (
-             ReactingCloud<reactingParcel>& owner,
+             ReactingCloud<basicReactingParcel>& owner,
              const label typeId,
              const vector& position,
              const label celli,
@@ -78,28 +78,29 @@ public:
         );
 
         //- Construct from Istream
-        reactingParcel
+        basicReactingParcel
         (
-            const Cloud<reactingParcel>& c,
+            const Cloud<basicReactingParcel>& c,
             Istream& is,
             bool readFields = true
         );
 
         //- Construct and return a clone
-        autoPtr<reactingParcel> clone() const
+        autoPtr<basicReactingParcel> clone() const
         {
-            return autoPtr<reactingParcel>(new reactingParcel(*this));
+            return autoPtr<basicReactingParcel>
+                (new basicReactingParcel(*this));
         }
 
 
     // Destructors
 
-        virtual ~reactingParcel();
+        virtual ~basicReactingParcel();
 };
 
 
 template<>
-inline bool contiguous<reactingParcel>()
+inline bool contiguous<basicReactingParcel>()
 {
     return false; // Now have scalar lists/fields (mass fractions)
 }
diff --git a/src/lagrangian/intermediate/parcels/derived/reactingParcel/defineReactingParcel.C b/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/defineBasicReactingParcel.C
similarity index 59%
rename from src/lagrangian/intermediate/parcels/derived/reactingParcel/defineReactingParcel.C
rename to src/lagrangian/intermediate/parcels/derived/basicReactingParcel/defineBasicReactingParcel.C
index 427def96de1536c6d764f39f7725e9817afc5eae..87106d9d7e9c17823c9411e15cefea25a4a289db 100644
--- a/src/lagrangian/intermediate/parcels/derived/reactingParcel/defineReactingParcel.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/defineBasicReactingParcel.C
@@ -24,28 +24,28 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "reactingParcel.H"
+#include "basicReactingParcel.H"
 #include "ReactingCloud.H"
 
 namespace Foam
 {
-    defineTemplateTypeNameAndDebug(Cloud<reactingParcel>, 0);
+    defineTemplateTypeNameAndDebug(Cloud<basicReactingParcel>, 0);
 
-    defineParcelTypeNameAndDebug(KinematicParcel<reactingParcel>, 0);
-//    defineTemplateTypeNameAndDebug(KinematicParcel<reactingParcel>, 0);
-    defineParcelTypeNameAndDebug(ThermoParcel<reactingParcel>, 0);
-    defineTemplateTypeNameAndDebug(ThermoParcel<reactingParcel>, 0);
-    defineParcelTypeNameAndDebug(ReactingParcel<reactingParcel>, 0);
-    defineTemplateTypeNameAndDebug(ReactingParcel<reactingParcel>, 0);
+    defineParcelTypeNameAndDebug(KinematicParcel<basicReactingParcel>, 0);
+//    defineTemplateTypeNameAndDebug(KinematicParcel<basicReactingParcel>, 0);
+    defineParcelTypeNameAndDebug(ThermoParcel<basicReactingParcel>, 0);
+    defineTemplateTypeNameAndDebug(ThermoParcel<basicReactingParcel>, 0);
+    defineParcelTypeNameAndDebug(ReactingParcel<basicReactingParcel>, 0);
+    defineTemplateTypeNameAndDebug(ReactingParcel<basicReactingParcel>, 0);
 
-    defineParcelTypeNameAndDebug(KinematicCloud<reactingParcel>, 0);
-//    defineTemplateTypeNameAndDebug(KinematicCloud<reactingParcel>, 0);
+    defineParcelTypeNameAndDebug(KinematicCloud<basicReactingParcel>, 0);
+//    defineTemplateTypeNameAndDebug(KinematicCloud<basicReactingParcel>, 0);
 
-    defineParcelTypeNameAndDebug(ThermoCloud<reactingParcel>, 0);
-//    defineTemplateTypeNameAndDebug(ThermoCloud<reactingParcel>, 0);
+    defineParcelTypeNameAndDebug(ThermoCloud<basicReactingParcel>, 0);
+//    defineTemplateTypeNameAndDebug(ThermoCloud<basicReactingParcel>, 0);
 
-    defineParcelTypeNameAndDebug(ReactingCloud<reactingParcel>, 0);
-//    defineTemplateTypeNameAndDebug(ReactingCloud<reactingParcel>, 0);
+    defineParcelTypeNameAndDebug(ReactingCloud<basicReactingParcel>, 0);
+//    defineTemplateTypeNameAndDebug(ReactingCloud<basicReactingParcel>, 0);
 
 };
 
diff --git a/src/lagrangian/intermediate/parcels/derived/reactingParcel/makeReactingParcelCompositionModels.C b/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelCompositionModels.C
similarity index 92%
rename from src/lagrangian/intermediate/parcels/derived/reactingParcel/makeReactingParcelCompositionModels.C
rename to src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelCompositionModels.C
index fd8a908fbf4fccb0e7370fc5133a9cc7ade9fda9..2cd9da2d65bf0ed0cdd0701aea0ce2562ba890a5 100644
--- a/src/lagrangian/intermediate/parcels/derived/reactingParcel/makeReactingParcelCompositionModels.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelCompositionModels.C
@@ -24,20 +24,20 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "reactingParcel.H"
+#include "basicReactingParcel.H"
 #include "ReactingCloud.H"
 #include "SingleMixtureFraction.H"
 
 namespace Foam
 {
-    makeCompositionModel(ReactingCloud<reactingParcel>);
+    makeCompositionModel(ReactingCloud<basicReactingParcel>);
 
     // Add instances of composition model to the table
     makeCompositionModelType
     (
         SingleMixtureFraction,
         ReactingCloud,
-        reactingParcel
+        basicReactingParcel
     );
 };
 
diff --git a/src/lagrangian/intermediate/parcels/derived/reactingParcel/makeReactingParcelDispersionModels.C b/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelDispersionModels.C
similarity index 88%
rename from src/lagrangian/intermediate/parcels/derived/reactingParcel/makeReactingParcelDispersionModels.C
rename to src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelDispersionModels.C
index cde646184536a44857320c76d0d466bf66b316bc..985cb0fee6e9ea8390fb13c8b90a531bb3445b97 100644
--- a/src/lagrangian/intermediate/parcels/derived/reactingParcel/makeReactingParcelDispersionModels.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelDispersionModels.C
@@ -24,7 +24,7 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "reactingParcel.H"
+#include "basicReactingParcel.H"
 #include "KinematicCloud.H"
 #include "NoDispersion.H"
 #include "GradientDispersionRAS.H"
@@ -32,11 +32,11 @@ License
 
 namespace Foam
 {
-    makeDispersionModel(KinematicCloud<reactingParcel>);
+    makeDispersionModel(KinematicCloud<basicReactingParcel>);
 
     defineNamedTemplateTypeNameAndDebug
     (
-        DispersionRASModel<KinematicCloud<reactingParcel> >,
+        DispersionRASModel<KinematicCloud<basicReactingParcel> >,
         0
     );
 
@@ -45,19 +45,19 @@ namespace Foam
     (
         NoDispersion,
         KinematicCloud,
-        reactingParcel
+        basicReactingParcel
     );
     makeDispersionModelType
     (
         GradientDispersionRAS,
         KinematicCloud,
-        reactingParcel
+        basicReactingParcel
     );
     makeDispersionModelType
     (
         StochasticDispersionRAS,
         KinematicCloud,
-        reactingParcel
+        basicReactingParcel
     );
 };
 
diff --git a/src/lagrangian/intermediate/parcels/derived/kinematicParcel/makeKinematicParcelDragModels.C b/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelDragModels.C
similarity index 86%
rename from src/lagrangian/intermediate/parcels/derived/kinematicParcel/makeKinematicParcelDragModels.C
rename to src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelDragModels.C
index 209ae7d86d717a49189d8e18e9c50b4086c453c6..2de3b1614351198bc51aab8752e11a80c3a60caa 100644
--- a/src/lagrangian/intermediate/parcels/derived/kinematicParcel/makeKinematicParcelDragModels.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelDragModels.C
@@ -24,18 +24,18 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "kinematicParcel.H"
+#include "basicReactingParcel.H"
 #include "KinematicCloud.H"
 #include "NoDrag.H"
 #include "SphereDrag.H"
 
 namespace Foam
 {
-    makeDragModel(KinematicCloud<kinematicParcel>);
+    makeDragModel(KinematicCloud<basicReactingParcel>);
 
     // Add instances of drag model to the table
-    makeDragModelType(NoDrag, KinematicCloud, kinematicParcel);
-    makeDragModelType(SphereDrag, KinematicCloud, kinematicParcel);
+    makeDragModelType(NoDrag, KinematicCloud, basicReactingParcel);
+    makeDragModelType(SphereDrag, KinematicCloud, basicReactingParcel);
 };
 
 
diff --git a/src/lagrangian/intermediate/parcels/derived/thermoParcel/makeThermoParcelHeatTransferModels.C b/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelHeatTransferModels.C
similarity index 81%
rename from src/lagrangian/intermediate/parcels/derived/thermoParcel/makeThermoParcelHeatTransferModels.C
rename to src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelHeatTransferModels.C
index 29afb72f4b371f2e83f3ab4276ae1ef58e56a5d3..7bd38923d3d3279ffec247c08b701c7ee8809938 100644
--- a/src/lagrangian/intermediate/parcels/derived/thermoParcel/makeThermoParcelHeatTransferModels.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelHeatTransferModels.C
@@ -24,18 +24,28 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "thermoParcel.H"
+#include "basicReactingParcel.H"
 #include "ThermoCloud.H"
 #include "NoHeatTransfer.H"
 #include "RanzMarshall.H"
 
 namespace Foam
 {
-    makeHeatTransferModel(ThermoCloud<thermoParcel>);
+    makeHeatTransferModel(ThermoCloud<basicReactingParcel>);
 
     // Add instances of heat transfer model to the table
-    makeHeatTransferModelType(NoHeatTransfer, ThermoCloud, thermoParcel);
-    makeHeatTransferModelType(RanzMarshall, ThermoCloud, thermoParcel);
+    makeHeatTransferModelType
+    (
+        NoHeatTransfer,
+        ThermoCloud,
+        basicReactingParcel
+    );
+    makeHeatTransferModelType
+    (
+        RanzMarshall,
+        ThermoCloud,
+        basicReactingParcel
+    );
 };
 
 
diff --git a/src/lagrangian/intermediate/parcels/derived/reactingParcel/makeReactingParcelInjectionModels.C b/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelInjectionModels.C
similarity index 81%
rename from src/lagrangian/intermediate/parcels/derived/reactingParcel/makeReactingParcelInjectionModels.C
rename to src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelInjectionModels.C
index d43f9570ca6b01a142cb9cb26fed9dd3be07a0ce..64296007dc7b98e0b16e6204dff6cec1845a32f9 100644
--- a/src/lagrangian/intermediate/parcels/derived/reactingParcel/makeReactingParcelInjectionModels.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelInjectionModels.C
@@ -24,18 +24,28 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "reactingParcel.H"
+#include "basicReactingParcel.H"
 #include "ReactingCloud.H"
 #include "ManualInjection.H"
 #include "NoInjection.H"
 
 namespace Foam
 {
-    makeInjectionModel(KinematicCloud<reactingParcel>);
+    makeInjectionModel(KinematicCloud<basicReactingParcel>);
 
     // Add instances of injection model to the table
-    makeInjectionModelType(ManualInjection, KinematicCloud, reactingParcel);
-    makeInjectionModelType(NoInjection, KinematicCloud, reactingParcel);
+    makeInjectionModelType
+    (
+        ManualInjection,
+        KinematicCloud,
+        basicReactingParcel
+    );
+    makeInjectionModelType
+    (
+        NoInjection,
+        KinematicCloud,
+        basicReactingParcel
+    );
 };
 
 
diff --git a/src/lagrangian/intermediate/parcels/derived/reactingParcel/makeReactingParcelMassTransferModels.C b/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelMassTransferModels.C
similarity index 91%
rename from src/lagrangian/intermediate/parcels/derived/reactingParcel/makeReactingParcelMassTransferModels.C
rename to src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelMassTransferModels.C
index 6768b459c79700bd3f5db1706c683548fa86b87f..b6347d5353d7217859b82eee0b30e8b4ef41b5b2 100644
--- a/src/lagrangian/intermediate/parcels/derived/reactingParcel/makeReactingParcelMassTransferModels.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelMassTransferModels.C
@@ -24,7 +24,7 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "reactingParcel.H"
+#include "basicReactingParcel.H"
 #include "ThermoCloud.H"
 #include "NoMassTransfer.H"
 #include "ConstantRateDevolatilisation.H"
@@ -32,26 +32,26 @@ License
 
 namespace Foam
 {
-    makeMassTransferModel(ReactingCloud<reactingParcel>);
+    makeMassTransferModel(ReactingCloud<basicReactingParcel>);
 
     // Add instances of mass transfer model to the table
     makeMassTransferModelType
     (
         NoMassTransfer,
         ReactingCloud,
-        reactingParcel
+        basicReactingParcel
     );
     makeMassTransferModelType
     (
         ConstantRateDevolatilisation,
         ReactingCloud,
-        reactingParcel
+        basicReactingParcel
     );
     makeMassTransferModelType
     (
         SingleKineticRateDevolatilisation,
         ReactingCloud,
-        reactingParcel
+        basicReactingParcel
     );
 };
 
diff --git a/src/lagrangian/intermediate/parcels/derived/reactingParcel/makeReactingParcelSurfaceReactionModels.C b/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelSurfaceReactionModels.C
similarity index 92%
rename from src/lagrangian/intermediate/parcels/derived/reactingParcel/makeReactingParcelSurfaceReactionModels.C
rename to src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelSurfaceReactionModels.C
index 5392a1dacaf2411c7bd1dee99142fd63ce1a5e49..8cf01454056c9f64172c9dece79a8bc25c5021fd 100644
--- a/src/lagrangian/intermediate/parcels/derived/reactingParcel/makeReactingParcelSurfaceReactionModels.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelSurfaceReactionModels.C
@@ -24,20 +24,20 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "reactingParcel.H"
+#include "basicReactingParcel.H"
 #include "ReactingCloud.H"
 #include "NoSurfaceReaction.H"
 
 namespace Foam
 {
-    makeSurfaceReactionModel(ReactingCloud<reactingParcel>);
+    makeSurfaceReactionModel(ReactingCloud<basicReactingParcel>);
 
     // Add instances of surface reaction model to the table
     makeSurfaceReactionModelType
     (
         NoSurfaceReaction,
         ReactingCloud,
-        reactingParcel
+        basicReactingParcel
     );
 };
 
diff --git a/src/lagrangian/intermediate/parcels/derived/kinematicParcel/makeKinematicParcelWallInteractionModels.C b/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelWallInteractionModels.C
similarity index 83%
rename from src/lagrangian/intermediate/parcels/derived/kinematicParcel/makeKinematicParcelWallInteractionModels.C
rename to src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelWallInteractionModels.C
index 67e8930eedbde4bc5e8b1bb85081836d45aaad81..688350fe04898e8e4bb8b69956e9099319da4aee 100644
--- a/src/lagrangian/intermediate/parcels/derived/kinematicParcel/makeKinematicParcelWallInteractionModels.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelWallInteractionModels.C
@@ -24,22 +24,28 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "kinematicParcel.H"
+#include "basicReactingParcel.H"
 #include "KinematicCloud.H"
 #include "Rebound.H"
 #include "StandardWallInteraction.H"
 
 namespace Foam
 {
-    makeWallInteractionModel(KinematicCloud<kinematicParcel>);
+    makeWallInteractionModel(KinematicCloud<basicReactingParcel>);
+//    makeWallInteractionModel(ReactingCloud<basicReactingParcel>);
 
     // Add instances of wall interaction model to the table
-    makeWallInteractionModelType(Rebound, KinematicCloud, kinematicParcel);
+    makeWallInteractionModelType
+    (
+        Rebound,
+        KinematicCloud,
+        basicReactingParcel
+    );
     makeWallInteractionModelType
     (
         StandardWallInteraction,
         KinematicCloud,
-        kinematicParcel
+        basicReactingParcel
     );
 };
 
diff --git a/src/lagrangian/intermediate/parcels/derived/thermoParcel/thermoParcel.C b/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/basicThermoParcel.C
similarity index 79%
rename from src/lagrangian/intermediate/parcels/derived/thermoParcel/thermoParcel.C
rename to src/lagrangian/intermediate/parcels/derived/basicThermoParcel/basicThermoParcel.C
index 4667cc3880e915bfdd23825e998014f892c2eed7..d392cb15b0f87907554435f214c2ffc89a9440ef 100644
--- a/src/lagrangian/intermediate/parcels/derived/thermoParcel/thermoParcel.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/basicThermoParcel.C
@@ -24,23 +24,23 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "thermoParcel.H"
+#include "basicThermoParcel.H"
 
 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
 
 namespace Foam
 {
-    defineTypeNameAndDebug(thermoParcel, 0);
-    defineParticleTypeNameAndDebug(thermoParcel, 0);
-    defineParcelTypeNameAndDebug(thermoParcel, 0);
+    defineTypeNameAndDebug(basicThermoParcel, 0);
+    defineParticleTypeNameAndDebug(basicThermoParcel, 0);
+    defineParcelTypeNameAndDebug(basicThermoParcel, 0);
 };
 
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-Foam::thermoParcel::thermoParcel
+Foam::basicThermoParcel::basicThermoParcel
 (
-    ThermoCloud<thermoParcel>& owner,
+    ThermoCloud<basicThermoParcel>& owner,
     const label typeId,
     const vector position,
     const label celli,
@@ -50,7 +50,7 @@ Foam::thermoParcel::thermoParcel
     const constantProperties& constProps
 )
 :
-    ThermoParcel<thermoParcel>
+    ThermoParcel<basicThermoParcel>
     (
         owner,
         typeId,
@@ -64,20 +64,20 @@ Foam::thermoParcel::thermoParcel
 {}
 
 
-Foam::thermoParcel::thermoParcel
+Foam::basicThermoParcel::basicThermoParcel
 (
-    const Cloud<thermoParcel>& cloud,
+    const Cloud<basicThermoParcel>& cloud,
     Istream& is,
     bool readFields
 )
 :
-    ThermoParcel<thermoParcel>(cloud, is, readFields)
+    ThermoParcel<basicThermoParcel>(cloud, is, readFields)
 {}
 
 
 // * * * * * * * * * * * * * * * *  Destructors  * * * * * * * * * * * * * * //
 
-Foam::thermoParcel::~thermoParcel()
+Foam::basicThermoParcel::~basicThermoParcel()
 {}
 
 
diff --git a/src/lagrangian/intermediate/parcels/derived/thermoParcel/thermoParcel.H b/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/basicThermoParcel.H
similarity index 79%
rename from src/lagrangian/intermediate/parcels/derived/thermoParcel/thermoParcel.H
rename to src/lagrangian/intermediate/parcels/derived/basicThermoParcel/basicThermoParcel.H
index b7eb05497ea0fc9bb46fa6995db9d914fd18b617..890340635334dc2fe3e2051a222cd55d87b1b36d 100644
--- a/src/lagrangian/intermediate/parcels/derived/thermoParcel/thermoParcel.H
+++ b/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/basicThermoParcel.H
@@ -23,18 +23,18 @@ License
     Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
 
 Class
-    Foam::thermoParcel
+    Foam::basicThermoParcel
 
 Description
 
 
 SourceFiles
-    thermoParcel.C
+    basicThermoParcel.C
 
 \*---------------------------------------------------------------------------*/
 
-#ifndef thermoParcel_H
-#define thermoParcel_H
+#ifndef basicThermoParcel_H
+#define basicThermoParcel_H
 
 #include "ThermoParcel.H"
 
@@ -44,25 +44,25 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-                         Class thermoParcel Declaration
+                         Class basicThermoParcel Declaration
 \*---------------------------------------------------------------------------*/
 
-class thermoParcel
+class basicThermoParcel
 :
-    public ThermoParcel<thermoParcel>
+    public ThermoParcel<basicThermoParcel>
 {
 
 public:
 
     //- Runtime type information
-    TypeName("thermoParcel");
+    TypeName("basicThermoParcel");
 
     // Constructors
 
        //- Construct from components
-       thermoParcel
+       basicThermoParcel
        (
-            ThermoCloud<thermoParcel>& owner,
+            ThermoCloud<basicThermoParcel>& owner,
             const label typeId,
             const vector position,
             const label celli,
@@ -73,28 +73,28 @@ public:
         );
 
         //- Construct from Istream
-        thermoParcel
+        basicThermoParcel
         (
-            const Cloud<thermoParcel>& c,
+            const Cloud<basicThermoParcel>& c,
             Istream& is,
             bool readFields = true
         );
 
         //- Construct and return a clone
-        autoPtr<thermoParcel> clone() const
+        autoPtr<basicThermoParcel> clone() const
         {
-            return autoPtr<thermoParcel>(new thermoParcel(*this));
+            return autoPtr<basicThermoParcel>(new basicThermoParcel(*this));
         }
 
 
     // Destructors
 
-        virtual ~thermoParcel();
+        virtual ~basicThermoParcel();
 };
 
 
 template<>
-inline bool contiguous<thermoParcel>()
+inline bool contiguous<basicThermoParcel>()
 {
     return true;
 }
diff --git a/src/lagrangian/intermediate/parcels/derived/thermoParcel/defineThermoParcel.C b/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/defineBasicThermoParcel.C
similarity index 66%
rename from src/lagrangian/intermediate/parcels/derived/thermoParcel/defineThermoParcel.C
rename to src/lagrangian/intermediate/parcels/derived/basicThermoParcel/defineBasicThermoParcel.C
index a807484782b9b2ad6c3ee88b01de05ffefd80906..8d5b906e3152b10ba14677027602b0592626252d 100644
--- a/src/lagrangian/intermediate/parcels/derived/thermoParcel/defineThermoParcel.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/defineBasicThermoParcel.C
@@ -24,23 +24,23 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "thermoParcel.H"
+#include "basicThermoParcel.H"
 #include "ThermoCloud.H"
 
 namespace Foam
 {
-    defineTemplateTypeNameAndDebug(Cloud<thermoParcel>, 0);
+    defineTemplateTypeNameAndDebug(Cloud<basicThermoParcel>, 0);
 
-    defineParcelTypeNameAndDebug(KinematicParcel<thermoParcel>, 0);
-//    defineTemplateTypeNameAndDebug(KinematicParcel<thermoParcel>, 0);
-    defineParcelTypeNameAndDebug(ThermoParcel<thermoParcel>, 0);
-    defineTemplateTypeNameAndDebug(ThermoParcel<thermoParcel>, 0);
+    defineParcelTypeNameAndDebug(KinematicParcel<basicThermoParcel>, 0);
+//    defineTemplateTypeNameAndDebug(KinematicParcel<basicThermoParcel>, 0);
+    defineParcelTypeNameAndDebug(ThermoParcel<basicThermoParcel>, 0);
+    defineTemplateTypeNameAndDebug(ThermoParcel<basicThermoParcel>, 0);
 
-    defineParcelTypeNameAndDebug(KinematicCloud<thermoParcel>, 0);
-//    defineTemplateTypeNameAndDebug(KinematicCloud<thermoParcel>, 0);
+    defineParcelTypeNameAndDebug(KinematicCloud<basicThermoParcel>, 0);
+//    defineTemplateTypeNameAndDebug(KinematicCloud<basicThermoParcel>, 0);
 
-    defineParcelTypeNameAndDebug(ThermoCloud<thermoParcel>, 0);
-//    defineTemplateTypeNameAndDebug(ThermoCloud<thermoParcel>, 0);
+    defineParcelTypeNameAndDebug(ThermoCloud<basicThermoParcel>, 0);
+//    defineTemplateTypeNameAndDebug(ThermoCloud<basicThermoParcel>, 0);
 };
 
 
diff --git a/src/lagrangian/intermediate/parcels/derived/thermoParcel/makeThermoParcelDispersionModels.C b/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/makeBasicThermoParcelDispersionModels.C
similarity index 88%
rename from src/lagrangian/intermediate/parcels/derived/thermoParcel/makeThermoParcelDispersionModels.C
rename to src/lagrangian/intermediate/parcels/derived/basicThermoParcel/makeBasicThermoParcelDispersionModels.C
index 9061d6ed93f7f7f88391a2190e5bd6b3c610aaec..9c23ac599460f208c6b7cb5c8d798ac51664431d 100644
--- a/src/lagrangian/intermediate/parcels/derived/thermoParcel/makeThermoParcelDispersionModels.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/makeBasicThermoParcelDispersionModels.C
@@ -24,7 +24,7 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "thermoParcel.H"
+#include "basicThermoParcel.H"
 #include "KinematicCloud.H"
 #include "NoDispersion.H"
 #include "GradientDispersionRAS.H"
@@ -32,11 +32,11 @@ License
 
 namespace Foam
 {
-    makeDispersionModel(KinematicCloud<thermoParcel>);
+    makeDispersionModel(KinematicCloud<basicThermoParcel>);
 
     defineNamedTemplateTypeNameAndDebug
     (
-        DispersionRASModel<KinematicCloud<thermoParcel> >,
+        DispersionRASModel<KinematicCloud<basicThermoParcel> >,
         0
     );
 
@@ -45,19 +45,19 @@ namespace Foam
     (
         NoDispersion,
         KinematicCloud,
-        thermoParcel
+        basicThermoParcel
     );
     makeDispersionModelType
     (
         GradientDispersionRAS,
         KinematicCloud,
-        thermoParcel
+        basicThermoParcel
     );
     makeDispersionModelType
     (
         StochasticDispersionRAS,
         KinematicCloud,
-        thermoParcel
+        basicThermoParcel
     );
 };
 
diff --git a/src/lagrangian/intermediate/parcels/derived/thermoParcel/makeThermoParcelDragModels.C b/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/makeBasicThermoParcelDragModels.C
similarity index 86%
rename from src/lagrangian/intermediate/parcels/derived/thermoParcel/makeThermoParcelDragModels.C
rename to src/lagrangian/intermediate/parcels/derived/basicThermoParcel/makeBasicThermoParcelDragModels.C
index 6899dfd07c9f0f2ef18bbefcbb866eb94e534927..8166e0ad462c39e4a02ddd4ad65e3837a18b04ca 100644
--- a/src/lagrangian/intermediate/parcels/derived/thermoParcel/makeThermoParcelDragModels.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/makeBasicThermoParcelDragModels.C
@@ -24,18 +24,18 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "thermoParcel.H"
+#include "basicThermoParcel.H"
 #include "KinematicCloud.H"
 #include "NoDrag.H"
 #include "SphereDrag.H"
 
 namespace Foam
 {
-    makeDragModel(KinematicCloud<thermoParcel>);
+    makeDragModel(KinematicCloud<basicThermoParcel>);
 
     // Add instances of drag model to the table
-    makeDragModelType(NoDrag, KinematicCloud, thermoParcel);
-    makeDragModelType(SphereDrag, KinematicCloud, thermoParcel);
+    makeDragModelType(NoDrag, KinematicCloud, basicThermoParcel);
+    makeDragModelType(SphereDrag, KinematicCloud, basicThermoParcel);
 };
 
 
diff --git a/src/lagrangian/intermediate/parcels/derived/reactingParcel/makeReactingParcelHeatTransferModels.C b/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/makeBasicThermoParcelHeatTransferModels.C
similarity index 85%
rename from src/lagrangian/intermediate/parcels/derived/reactingParcel/makeReactingParcelHeatTransferModels.C
rename to src/lagrangian/intermediate/parcels/derived/basicThermoParcel/makeBasicThermoParcelHeatTransferModels.C
index 3291f4eb8ad05e25f368742f5462faab139036b2..daed9b5bb5a1f9a7e9d02ae2ccc41f10681ccaf5 100644
--- a/src/lagrangian/intermediate/parcels/derived/reactingParcel/makeReactingParcelHeatTransferModels.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/makeBasicThermoParcelHeatTransferModels.C
@@ -24,18 +24,18 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "reactingParcel.H"
+#include "basicThermoParcel.H"
 #include "ThermoCloud.H"
 #include "NoHeatTransfer.H"
 #include "RanzMarshall.H"
 
 namespace Foam
 {
-    makeHeatTransferModel(ThermoCloud<reactingParcel>);
+    makeHeatTransferModel(ThermoCloud<basicThermoParcel>);
 
     // Add instances of heat transfer model to the table
-    makeHeatTransferModelType(NoHeatTransfer, ThermoCloud, reactingParcel);
-    makeHeatTransferModelType(RanzMarshall, ThermoCloud, reactingParcel);
+    makeHeatTransferModelType(NoHeatTransfer, ThermoCloud, basicThermoParcel);
+    makeHeatTransferModelType(RanzMarshall, ThermoCloud, basicThermoParcel);
 };
 
 
diff --git a/src/lagrangian/intermediate/parcels/derived/thermoParcel/makeThermoParcelInjectionModels.C b/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/makeBasicThermoParcelInjectionModels.C
similarity index 85%
rename from src/lagrangian/intermediate/parcels/derived/thermoParcel/makeThermoParcelInjectionModels.C
rename to src/lagrangian/intermediate/parcels/derived/basicThermoParcel/makeBasicThermoParcelInjectionModels.C
index fb12cd9e158aef7db2aa121322448dfeb110b439..357ba8249889166cb2b5524b37864f25ba3e7fae 100644
--- a/src/lagrangian/intermediate/parcels/derived/thermoParcel/makeThermoParcelInjectionModels.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/makeBasicThermoParcelInjectionModels.C
@@ -24,19 +24,19 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "thermoParcel.H"
+#include "basicThermoParcel.H"
 #include "ThermoCloud.H"
 #include "NoInjection.H"
 #include "ManualInjection.H"
 
 namespace Foam
 {
-    makeInjectionModel(KinematicCloud<thermoParcel>);
+    makeInjectionModel(KinematicCloud<basicThermoParcel>);
 
     // Add instances of injection model to the table
-    makeInjectionModelType(NoInjection, KinematicCloud, thermoParcel);
+    makeInjectionModelType(NoInjection, KinematicCloud, basicThermoParcel);
 
-    makeInjectionModelType(ManualInjection, KinematicCloud, thermoParcel);
+    makeInjectionModelType(ManualInjection, KinematicCloud, basicThermoParcel);
 };
 
 
diff --git a/src/lagrangian/intermediate/parcels/derived/thermoParcel/makeThermoParcelWallInteractionModels.C b/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/makeBasicThermoParcelWallInteractionModels.C
similarity index 91%
rename from src/lagrangian/intermediate/parcels/derived/thermoParcel/makeThermoParcelWallInteractionModels.C
rename to src/lagrangian/intermediate/parcels/derived/basicThermoParcel/makeBasicThermoParcelWallInteractionModels.C
index aab77c9b70d3a89dade6d40ac276c7299e047d34..fc79685f3ae06807c48e6d7588d6bacc1c0101da 100644
--- a/src/lagrangian/intermediate/parcels/derived/thermoParcel/makeThermoParcelWallInteractionModels.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/makeBasicThermoParcelWallInteractionModels.C
@@ -24,27 +24,27 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "thermoParcel.H"
+#include "basicThermoParcel.H"
 #include "KinematicCloud.H"
 #include "Rebound.H"
 #include "StandardWallInteraction.H"
 
 namespace Foam
 {
-    makeWallInteractionModel(KinematicCloud<thermoParcel>);
+    makeWallInteractionModel(KinematicCloud<basicThermoParcel>);
 
     // Add instances of wall interaction model to the table
     makeWallInteractionModelType
     (
         Rebound,
         KinematicCloud,
-        thermoParcel
+        basicThermoParcel
     );
     makeWallInteractionModelType
     (
         StandardWallInteraction,
         KinematicCloud,
-        thermoParcel
+        basicThermoParcel
     );
 };
 
diff --git a/src/lagrangian/intermediate/submodels/Thermodynamic/HeatTransferModel/HeatTransferModel/HeatTransferModel.H b/src/lagrangian/intermediate/submodels/Thermodynamic/HeatTransferModel/HeatTransferModel/HeatTransferModel.H
index 5b93537a5b94fed5180ad92fb8edfc861dc53357..e1ae0b7383c54bf067ef06c2b17e76e89a3a9208 100644
--- a/src/lagrangian/intermediate/submodels/Thermodynamic/HeatTransferModel/HeatTransferModel/HeatTransferModel.H
+++ b/src/lagrangian/intermediate/submodels/Thermodynamic/HeatTransferModel/HeatTransferModel/HeatTransferModel.H
@@ -40,7 +40,6 @@ SourceFiles
 
 #include "IOdictionary.H"
 #include "autoPtr.H"
-//#include "KinematicCloud.H"
 #include "runTimeSelectionTables.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //