diff --git a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.C b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.C
index 96209bde8209bd7e8383daf9786287ab0a29378e..bbb730bb62658db9a8c700828172bf091439fb8a 100644
--- a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.C
+++ b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.C
@@ -36,13 +36,72 @@ License
 #include "PostProcessingModel.H"
 #include "SurfaceFilmModel.H"
 
+// * * * * * * * * * * * * * * cloudSolution * * * * * * * * * * * * * * * * //
+
+template<class ParcelType>
+void Foam::KinematicCloud<ParcelType>::cloudSolution::read()
+{
+    dict_.lookup("coupled") >> coupled_;
+}
+
+
+template<class ParcelType>
+Foam::KinematicCloud<ParcelType>::cloudSolution::cloudSolution
+(
+    const fvMesh& mesh,
+    const dictionary& dict
+)
+:
+    mesh_(mesh),
+    dict_(dict),
+    active_(dict.lookup("active")),
+    coupled_(false)
+{
+    if (active_)
+    {
+        read();
+    }
+}
+
+
+template<class ParcelType>
+Foam::KinematicCloud<ParcelType>::cloudSolution::cloudSolution
+(
+    const cloudSolution& cs
+)
+:
+    mesh_(cs.mesh_),
+    dict_(cs.dict_),
+    active_(cs.active_),
+    coupled_(cs.coupled_)
+{}
+
+
+template<class ParcelType>
+Foam::KinematicCloud<ParcelType>::cloudSolution::cloudSolution
+(
+    const fvMesh& mesh
+)
+:
+    mesh_(mesh),
+    dict_(dictionary::null),
+    active_(false),
+    coupled_(false)
+{}
+
+
+template<class ParcelType>
+Foam::KinematicCloud<ParcelType>::cloudSolution::~cloudSolution()
+{}
+
+
 // * * * * * * * * * * * * * Protected Member Functions  * * * * * * * * * * //
 
 template<class ParcelType>
 void Foam::KinematicCloud<ParcelType>::preEvolve()
 {
     this->dispersion().cacheFields(true);
-    forces_.cacheFields(true, interpolationSchemes_);
+    forces_.cacheFields(true, solution_.interpolationSchemes());
     updateCellOccupancy();
 }
 
@@ -98,21 +157,21 @@ void Foam::KinematicCloud<ParcelType>::evolveCloud()
     autoPtr<interpolation<scalar> > rhoInterpolator =
         interpolation<scalar>::New
         (
-            interpolationSchemes_,
+            solution_.interpolationSchemes(),
             rho_
         );
 
     autoPtr<interpolation<vector> > UInterpolator =
         interpolation<vector>::New
         (
-            interpolationSchemes_,
+            solution_.interpolationSchemes(),
             U_
         );
 
     autoPtr<interpolation<scalar> > muInterpolator =
         interpolation<scalar>::New
         (
-            interpolationSchemes_,
+            solution_.interpolationSchemes(),
             mu_
         );
 
@@ -141,7 +200,7 @@ void Foam::KinematicCloud<ParcelType>::evolveCloud()
 
     this->injection().inject(td);
 
-    if (coupled_)
+    if (solution_.coupled())
     {
         resetSourceTerms();
     }
@@ -223,7 +282,7 @@ void Foam::KinematicCloud<ParcelType>::postEvolve()
     }
 
     this->dispersion().cacheFields(false);
-    forces_.cacheFields(false, interpolationSchemes_);
+    forces_.cacheFields(false, solution_.interpolationSchemes());
 
     this->postProcessing().post();
 }
@@ -256,11 +315,10 @@ Foam::KinematicCloud<ParcelType>::KinematicCloud
             IOobject::NO_WRITE
         )
     ),
+    solution_(mesh_, particleProperties_.subDict("solution")),
     constProps_(particleProperties_),
     subModelProperties_(particleProperties_.subDict("subModels")),
-    active_(particleProperties_.lookup("active")),
     parcelTypeId_(readLabel(particleProperties_.lookup("parcelTypeId"))),
-    coupled_(particleProperties_.lookup("coupled")),
     cellValueSourceCorrection_
     (
         particleProperties_.lookup("cellValueSourceCorrection")
@@ -272,7 +330,6 @@ Foam::KinematicCloud<ParcelType>::KinematicCloud
     mu_(mu),
     g_(g),
     forces_(mesh_, particleProperties_, g_.value()),
-    interpolationSchemes_(particleProperties_.subDict("interpolationSchemes")),
     dispersionModel_
     (
         DispersionModel<KinematicCloud<ParcelType> >::New
@@ -335,7 +392,7 @@ Foam::KinematicCloud<ParcelType>::KinematicCloud
         vectorIntegrationScheme::New
         (
             "U",
-            particleProperties_.subDict("integrationSchemes")
+            solution_.integrationSchemes()
         )
     ),
     UTrans_
@@ -397,7 +454,7 @@ void Foam::KinematicCloud<ParcelType>::resetSourceTerms()
 template<class ParcelType>
 void Foam::KinematicCloud<ParcelType>::evolve()
 {
-    if (active_)
+    if (solution_.active())
     {
         preEvolve();
 
diff --git a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.H b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.H
index 9138688a13440f6bee9b7fe8182d7f6a412aa8cd..e86954ef810e20a60975912b971af5e4d99833c6 100644
--- a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.H
+++ b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.H
@@ -105,6 +105,83 @@ class KinematicCloud
         void operator=(const KinematicCloud&);
 
 
+public:
+
+    // Cloud solution helper class
+    class cloudSolution
+    {
+        // Private Data
+
+            //- Reference to the mesh
+            const fvMesh& mesh_;
+
+            //- Dictionary used during construction
+            dictionary dict_;
+
+            //- Cloud active flag
+            const Switch active_;
+
+
+            // Run-time options
+
+                //- Flag to indicate whether parcels are coupled to the carrier
+                //  phase, i.e. whether or not to generate source terms for
+                //  carrier phase
+                Switch coupled_;
+
+                //- Flag to correct cell values with latest transfer information
+                //  during the lagrangian timestep
+                Switch cellValueSourceCorrection_;
+
+
+    public:
+
+        // Constructors
+
+            //- Construct null from mesh reference
+            cloudSolution(const fvMesh& mesh);
+
+            //- Construct from mesh and dictionary
+            cloudSolution(const fvMesh& mesh, const dictionary& dict);
+
+            //- Construct copy
+            cloudSolution(const cloudSolution& cs);
+
+
+        //- Destructor
+        virtual ~cloudSolution();
+
+
+        // Member functions
+
+            //- Read properties from dictionary
+            void read();
+
+            // Access
+
+                //- Return reference to the mesh
+                inline const fvMesh& mesh() const;
+
+                //- Return const access to the dictionary
+                inline const dictionary& dict() const;
+
+                //- Return the active flag
+                inline const Switch active() const;
+
+                //- Return const access to the coupled flag
+                inline const Switch coupled() const;
+
+                //- Return const access to the cell value correction flag
+                inline const Switch cellValueSourceCorrection() const;
+
+                //- Interpolation schemes dictionary
+                inline const dictionary& interpolationSchemes() const;
+
+                //- Integration schemes dictionary
+                inline const dictionary& integrationSchemes() const;
+    };
+
+
 protected:
 
     // Protected data
@@ -115,23 +192,19 @@ protected:
         //- Dictionary of particle properties
         IOdictionary particleProperties_;
 
-        //- Sub-models dictionary
-        const dictionary& subModelProperties_;
+        //- Solution properties
+        cloudSolution solution_;
 
         //- Parcel constant properties
         typename ParcelType::constantProperties constProps_;
 
-        //- Cloud active flag
-        const Switch active_;
+        //- Sub-models dictionary
+        const dictionary& subModelProperties_;
 
         //- Parcel type id - used to flag the type of parcels issued by this
         //  cloud
         const label parcelTypeId_;
 
-        //- Flag to indicate whether parcels are coupled to the carrier phase
-        //  i.e. whether or not to generate source terms for carrier phase
-        const Switch coupled_;
-
         //- Flag to correct cell values with latest transfer information
         //  during the lagrangian timestep
         const Switch cellValueSourceCorrection_;
@@ -164,9 +237,6 @@ protected:
         //- Optional particle forces
         particleForces forces_;
 
-        //- Interpolation schemes dictionary
-        dictionary interpolationSchemes_;
-
 
         // References to the cloud sub-models
 
@@ -278,28 +348,22 @@ public:
                 //- Return particle properties dictionary
                 inline const IOdictionary& particleProperties() const;
 
-                //- Return reference to the sub-models dictionary
-                inline const dictionary& subModelProperties() const;
+                //- Return const access to the solution properties
+                inline const cloudSolution& solution() const;
 
                 //- Return the constant properties
                 inline const typename ParcelType::constantProperties&
                     constProps() const;
 
+                    //- Return reference to the sub-models dictionary
+                inline const dictionary& subModelProperties() const;
 
-            // Cloud data
 
-                //- Return the active flag
-                inline const Switch active() const;
+            // Cloud data
 
                 //- Return the parcel type id
                 inline label parcelTypeId() const;
 
-                //- Return coupled flag
-                inline const Switch coupled() const;
-
-                //- Return cell value correction flag
-                inline const Switch cellValueSourceCorrection() const;
-
                 //- Return refernce to the random object
                 inline Random& rndGen();
 
@@ -332,12 +396,6 @@ public:
             inline const particleForces& forces() const;
 
 
-            // Interpolations
-
-                //- Return reference to the interpolation dictionary
-                inline const dictionary& interpolationSchemes() const;
-
-
             // Sub-models
 
                 //- Return const-access to the dispersion model
diff --git a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloudI.H b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloudI.H
index 3bbc78c905ad402e5352774d849faab168ccedc5..7a924d6c65d1b8bff34618c1708d9eb7efc2fd2a 100644
--- a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloudI.H
+++ b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloudI.H
@@ -25,6 +25,65 @@ License
 
 #include "fvmSup.H"
 
+// * * * * * * * * * * * cloudSolution Member Functions  * * * * * * * * * * //
+
+template<class ParcelType>
+inline const Foam::fvMesh&
+Foam::KinematicCloud<ParcelType>::cloudSolution::mesh() const
+{
+    return mesh_;
+}
+
+
+template<class ParcelType>
+inline const Foam::dictionary&
+Foam::KinematicCloud<ParcelType>::cloudSolution::dict() const
+{
+    return dict_;
+}
+
+
+template<class ParcelType>
+inline const Foam::Switch
+Foam::KinematicCloud<ParcelType>::cloudSolution::active() const
+{
+    return active_;
+}
+
+
+template<class ParcelType>
+inline const Foam::Switch
+Foam::KinematicCloud<ParcelType>::cloudSolution::coupled() const
+{
+    return coupled_;
+}
+
+
+template<class ParcelType>
+inline const Foam::Switch
+Foam::KinematicCloud<ParcelType>::cloudSolution::cellValueSourceCorrection()
+const
+{
+    return cellValueSourceCorrection_;
+}
+
+
+template<class ParcelType>
+inline const Foam::dictionary&
+Foam::KinematicCloud<ParcelType>::cloudSolution::interpolationSchemes() const
+{
+    return dict_.subDict("interpolationSchemes");
+}
+
+
+template<class ParcelType>
+inline const Foam::dictionary&
+Foam::KinematicCloud<ParcelType>::cloudSolution::integrationSchemes() const
+{
+    return dict_.subDict("integrationSchemes");
+}
+
+
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
 template<class ParcelType>
@@ -57,10 +116,10 @@ Foam::KinematicCloud<ParcelType>::particleProperties() const
 
 
 template<class ParcelType>
-inline const Foam::dictionary&
-Foam::KinematicCloud<ParcelType>::subModelProperties() const
+inline const typename Foam::KinematicCloud<ParcelType>::cloudSolution&
+Foam::KinematicCloud<ParcelType>::solution() const
 {
-    return subModelProperties_;
+    return solution_;
 }
 
 
@@ -73,24 +132,10 @@ Foam::KinematicCloud<ParcelType>::constProps() const
 
 
 template<class ParcelType>
-inline const Foam::Switch Foam::KinematicCloud<ParcelType>::active() const
-{
-    return active_;
-}
-
-
-template<class ParcelType>
-inline const Foam::Switch Foam::KinematicCloud<ParcelType>::coupled() const
-{
-    return coupled_;
-}
-
-
-template <class ParcelType>
-inline const Foam::Switch
-Foam::KinematicCloud<ParcelType>::cellValueSourceCorrection() const
+inline const Foam::dictionary&
+Foam::KinematicCloud<ParcelType>::subModelProperties() const
 {
-    return cellValueSourceCorrection_;
+    return subModelProperties_;
 }
 
 
@@ -132,14 +177,6 @@ Foam::KinematicCloud<ParcelType>::forces() const
 }
 
 
-template<class ParcelType>
-inline const Foam::dictionary&
-Foam::KinematicCloud<ParcelType>::interpolationSchemes() const
-{
-    return interpolationSchemes_;
-}
-
-
 template<class ParcelType>
 inline const Foam::DispersionModel<Foam::KinematicCloud<ParcelType> >&
 Foam::KinematicCloud<ParcelType>::dispersion() const
diff --git a/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloud.C b/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloud.C
index 2a54ef86724d597484fdf23696e5f722b9a7a909..8ddf9cc206b808142e13fabea21ae1c9d9c5a0cf 100644
--- a/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloud.C
+++ b/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloud.C
@@ -135,7 +135,7 @@ void Foam::ReactingCloud<ParcelType>::evolveCloud()
 
     this->injection().inject(td);
 
-    if (this->coupled())
+    if (this->solution().coupled())
     {
         resetSourceTerms();
     }
@@ -286,7 +286,7 @@ void Foam::ReactingCloud<ParcelType>::resetSourceTerms()
 template<class ParcelType>
 void Foam::ReactingCloud<ParcelType>::evolve()
 {
-    if (this->active())
+    if (this->solution().active())
     {
         preEvolve();
 
diff --git a/src/lagrangian/intermediate/clouds/Templates/ReactingMultiphaseCloud/ReactingMultiphaseCloud.C b/src/lagrangian/intermediate/clouds/Templates/ReactingMultiphaseCloud/ReactingMultiphaseCloud.C
index 579191bc6346204d09a3878ffbf31935d05e68bb..b8f4ebceef349e7e4f4ea325600da1c0cd9b39cb 100644
--- a/src/lagrangian/intermediate/clouds/Templates/ReactingMultiphaseCloud/ReactingMultiphaseCloud.C
+++ b/src/lagrangian/intermediate/clouds/Templates/ReactingMultiphaseCloud/ReactingMultiphaseCloud.C
@@ -46,37 +46,37 @@ void Foam::ReactingMultiphaseCloud<ParcelType>::evolveCloud()
 
     autoPtr<interpolation<scalar> > rhoInterp = interpolation<scalar>::New
     (
-        this->interpolationSchemes(),
+        this->solution().interpolationSchemes(),
         this->rho()
     );
 
     autoPtr<interpolation<vector> > UInterp = interpolation<vector>::New
     (
-        this->interpolationSchemes(),
+        this->solution().interpolationSchemes(),
         this->U()
     );
 
     autoPtr<interpolation<scalar> > muInterp = interpolation<scalar>::New
     (
-        this->interpolationSchemes(),
+        this->solution().interpolationSchemes(),
         this->mu()
     );
 
     autoPtr<interpolation<scalar> > TInterp = interpolation<scalar>::New
     (
-        this->interpolationSchemes(),
+        this->solution().interpolationSchemes(),
         T
     );
 
     autoPtr<interpolation<scalar> > cpInterp = interpolation<scalar>::New
     (
-        this->interpolationSchemes(),
+        this->solution().interpolationSchemes(),
         cp
     );
 
     autoPtr<interpolation<scalar> > pInterp = interpolation<scalar>::New
     (
-        this->interpolationSchemes(),
+        this->solution().interpolationSchemes(),
         p
     );
 
@@ -108,7 +108,7 @@ void Foam::ReactingMultiphaseCloud<ParcelType>::evolveCloud()
 
     this->injection().inject(td);
 
-    if (this->coupled())
+    if (this->solution().coupled())
     {
         resetSourceTerms();
     }
@@ -245,7 +245,7 @@ void Foam::ReactingMultiphaseCloud<ParcelType>::resetSourceTerms()
 template<class ParcelType>
 void Foam::ReactingMultiphaseCloud<ParcelType>::evolve()
 {
-    if (this->active())
+    if (this->solution().active())
     {
         preEvolve();
 
diff --git a/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.C b/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.C
index f141c29f7b0010282e48034bee3529e258834cb2..8571238db1cbd0c1ad3037f23ec9e1e65c71361d 100644
--- a/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.C
+++ b/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.C
@@ -46,31 +46,31 @@ void Foam::ThermoCloud<ParcelType>::evolveCloud()
 
     autoPtr<interpolation<scalar> > rhoInterp = interpolation<scalar>::New
     (
-        this->interpolationSchemes(),
+        this->solution().interpolationSchemes(),
         this->rho()
     );
 
     autoPtr<interpolation<vector> > UInterp = interpolation<vector>::New
     (
-        this->interpolationSchemes(),
+        this->solution().interpolationSchemes(),
         this->U()
     );
 
     autoPtr<interpolation<scalar> > muInterp = interpolation<scalar>::New
     (
-        this->interpolationSchemes(),
+        this->solution().interpolationSchemes(),
         this->mu()
     );
 
     autoPtr<interpolation<scalar> > TInterp = interpolation<scalar>::New
     (
-        this->interpolationSchemes(),
+        this->solution().interpolationSchemes(),
         T
     );
 
     autoPtr<interpolation<scalar> > cpInterp = interpolation<scalar>::New
     (
-        this->interpolationSchemes(),
+        this->solution().interpolationSchemes(),
         cp
     );
 
@@ -101,7 +101,7 @@ void Foam::ThermoCloud<ParcelType>::evolveCloud()
 
     this->injection().inject(td);
 
-    if (this->coupled())
+    if (this->solution().coupled())
     {
         resetSourceTerms();
     }
@@ -167,7 +167,7 @@ Foam::ThermoCloud<ParcelType>::ThermoCloud
         scalarIntegrationScheme::New
         (
             "T",
-            this->particleProperties().subDict("integrationSchemes")
+            this->solution().integrationSchemes()
         )
     ),
     radiation_(this->particleProperties().lookup("radiation")),
@@ -236,7 +236,7 @@ void Foam::ThermoCloud<ParcelType>::resetSourceTerms()
 template<class ParcelType>
 void Foam::ThermoCloud<ParcelType>::evolve()
 {
-    if (this->active())
+    if (this->solution().active())
     {
         preEvolve();
 
diff --git a/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloudI.H b/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloudI.H
index a8907205ce68fffdb50a5a23c483f9941c88a85e..c5d2f37d615ed723a665c8955c423e1d88c0f366 100644
--- a/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloudI.H
+++ b/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloudI.H
@@ -123,7 +123,7 @@ Foam::ThermoCloud<ParcelType>::Ep() const
     );
 
     // Need to check if coupled as field is created on-the-fly
-    if (radiation_ && this->coupled())
+    if (radiation_ && this->solution().coupled())
     {
         scalarField& Ep = tEp().internalField();
         const scalarField& V = this->mesh().V();
@@ -166,7 +166,7 @@ Foam::ThermoCloud<ParcelType>::ap() const
     );
 
     // Need to check if coupled as field is created on-the-fly
-    if (radiation_ && this->coupled())
+    if (radiation_ && this->solution().coupled())
     {
         scalarField& ap = tap().internalField();
         const scalarField& V = this->mesh().V();
@@ -209,7 +209,7 @@ Foam::ThermoCloud<ParcelType>::sigmap() const
     );
 
     // Need to check if coupled as field is created on-the-fly
-    if (radiation_ && this->coupled())
+    if (radiation_ && this->solution().coupled())
     {
         scalarField& sigmap = tsigmap().internalField();
 
diff --git a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.C b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.C
index f6ba6aeed3a74760a53e98ae973796c438b2ef95..4cd8e6df9bfae4ca0e5d02558868544b84d01f46 100644
--- a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.C
+++ b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.C
@@ -127,7 +127,7 @@ void Foam::KinematicParcel<ParcelType>::calc
 
     // Accumulate carrier phase source terms
     // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-    if (td.cloud().coupled())
+    if (td.cloud().solution().coupled())
     {
         // Update momentum transfer
         td.cloud().UTrans()[cellI] += np0*dUTrans;
@@ -301,7 +301,7 @@ bool Foam::KinematicParcel<ParcelType>::move(TrackData& td)
                     // Update cell based properties
                     p.setCellValues(td, dt, cellI);
 
-                    if (td.cloud().cellValueSourceCorrection())
+                    if (td.cloud().solution().cellValueSourceCorrection())
                     {
                         p.cellValueSourceCorrection(td, dt, cellI);
                     }
diff --git a/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcel.C b/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcel.C
index 1deed776b925e6d357ce1b64746992ad268701bb..e77064c5a1a01132a744198a9c9fe8350fde5b2c 100644
--- a/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcel.C
+++ b/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcel.C
@@ -387,7 +387,7 @@ void Foam::ReactingMultiphaseParcel<ParcelType>::calc
     // Accumulate carrier phase source terms
     // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-    if (td.cloud().coupled())
+    if (td.cloud().solution().coupled())
     {
         // Transfer mass lost from particle to carrier mass source
         forAll(YGas_, i)
@@ -428,7 +428,7 @@ void Foam::ReactingMultiphaseParcel<ParcelType>::calc
     {
         td.keepParticle = false;
 
-        if (td.cloud().coupled())
+        if (td.cloud().solution().coupled())
         {
             // Absorb parcel into carrier phase
             forAll(YGas_, i)
diff --git a/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.C b/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.C
index f03219885604b71d52474469ebcad7c495465271..edd2b8e6783a1e066ac4b2431e719c9f5f2affba 100644
--- a/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.C
+++ b/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.C
@@ -333,7 +333,7 @@ void Foam::ReactingParcel<ParcelType>::calc
 
     // Accumulate carrier phase source terms
     // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-    if (td.cloud().coupled())
+    if (td.cloud().solution().coupled())
     {
         // Transfer mass lost from particle to carrier mass source
         forAll(dMassPC, i)
@@ -356,7 +356,7 @@ void Foam::ReactingParcel<ParcelType>::calc
     {
         td.keepParticle = false;
 
-        if (td.cloud().coupled())
+        if (td.cloud().solution().coupled())
         {
             // Absorb parcel into carrier phase
             forAll(Y_, i)
diff --git a/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.C b/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.C
index dbcc01ad2ab5c5d42acdb707c9293e5d59777295..d04caf8cfc2134d8f1ef0f36b7437ec1d49c5800 100644
--- a/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.C
+++ b/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.C
@@ -193,7 +193,7 @@ void Foam::ThermoParcel<ParcelType>::calc
 
     //  Accumulate carrier phase source terms
     // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-    if (td.cloud().coupled())
+    if (td.cloud().solution().coupled())
     {
         // Update momentum transfer
         td.cloud().UTrans()[cellI] += np0*dUTrans;
diff --git a/tutorials/lagrangian/coalChemistryFoam/simplifiedSiwek/constant/coalCloud1Properties b/tutorials/lagrangian/coalChemistryFoam/simplifiedSiwek/constant/coalCloud1Properties
index 6ad5bec8889f9c24e14730a00b199b7546a72848..c965f964c8b977832623a9717a95937fabfd4adc 100644
--- a/tutorials/lagrangian/coalChemistryFoam/simplifiedSiwek/constant/coalCloud1Properties
+++ b/tutorials/lagrangian/coalChemistryFoam/simplifiedSiwek/constant/coalCloud1Properties
@@ -15,13 +15,30 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-active          true;
+solution
+{
+    active          true;
+    coupled         true;
+    cellValueSourceCorrection on;
 
-radiation       on;
+    interpolationSchemes
+    {
+        rho             cell;
+        U               cellPoint;
+        mu              cell;
+        T               cell;
+        Cp              cell;
+        p               cell;
+    }
 
-coupled         true;
+    integrationSchemes
+    {
+        U               Euler;
+        T               Analytical;
+    }
+}
 
-cellValueSourceCorrection on;
+radiation       on;
 
 parcelTypeId    1;
 
@@ -46,22 +63,6 @@ constantProperties
     constantVolume  true;
 }
 
-interpolationSchemes
-{
-    rho             cell;
-    U               cellPoint;
-    mu              cell;
-    T               cell;
-    Cp              cell;
-    p               cell;
-}
-
-integrationSchemes
-{
-    U               Euler;
-    T               Analytical;
-}
-
 particleForces
 {
     gravity             on;
diff --git a/tutorials/lagrangian/coalChemistryFoam/simplifiedSiwek/constant/limestoneCloud1Properties b/tutorials/lagrangian/coalChemistryFoam/simplifiedSiwek/constant/limestoneCloud1Properties
index 8b4207b192896a81938a3403c4727498ccc4312c..0524272eb698f00c8ae5f0f5a0146e6cd03b41cc 100644
--- a/tutorials/lagrangian/coalChemistryFoam/simplifiedSiwek/constant/limestoneCloud1Properties
+++ b/tutorials/lagrangian/coalChemistryFoam/simplifiedSiwek/constant/limestoneCloud1Properties
@@ -15,13 +15,29 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-active          true;
+solution
+{
+    active          true;
+    coupled         true;
+    cellValueSourceCorrection on;
 
-radiation       on;
+    interpolationSchemes
+    {
+        rho             cell;
+        mu              cell;
+        U               cellPoint;
+        Cp              cell;
+        T               cell;
+    }
 
-coupled         true;
+    integrationSchemes
+    {
+        U               Euler;
+        T               Analytical;
+    }
+}
 
-cellValueSourceCorrection on;
+radiation       on;
 
 parcelTypeId    2;
 
@@ -40,21 +56,6 @@ constantProperties
     Pr              0.7;
 }
 
-interpolationSchemes
-{
-    rho             cell;
-    mu              cell;
-    U               cellPoint;
-    Cp              cell;
-    T               cell;
-}
-
-integrationSchemes
-{
-    U               Euler;
-    T               Analytical;
-}
-
 particleForces
 {
     gravity             on;
diff --git a/tutorials/lagrangian/porousExplicitSourceReactingParcelFoam/filter/constant/reactingCloud1Properties b/tutorials/lagrangian/porousExplicitSourceReactingParcelFoam/filter/constant/reactingCloud1Properties
index 464ed8f5e57b1020b6ff3a47b0b7e7e1c004268d..8244491a541ea45ff8adff38e212f78b686409c6 100644
--- a/tutorials/lagrangian/porousExplicitSourceReactingParcelFoam/filter/constant/reactingCloud1Properties
+++ b/tutorials/lagrangian/porousExplicitSourceReactingParcelFoam/filter/constant/reactingCloud1Properties
@@ -15,13 +15,30 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-active          true;
+solution
+{
+    active          true;
+    coupled         true;
+    cellValueSourceCorrection on;
 
-radiation       off;
+    interpolationSchemes
+    {
+        rho             cell;
+        U               cellPoint;
+        mu              cell;
+        T               cell;
+        Cp              cell;
+        p               cell;
+    }
 
-coupled         true;
+    integrationSchemes
+    {
+        U               Euler;
+        T               Analytical;
+    }
+}
 
-cellValueSourceCorrection on;
+radiation       off;
 
 parcelTypeId    1;
 
@@ -46,22 +63,6 @@ constantProperties
     constantVolume  false;
 }
 
-interpolationSchemes
-{
-    rho             cell;
-    U               cellPoint;
-    mu              cell;
-    T               cell;
-    Cp              cell;
-    p               cell;
-}
-
-integrationSchemes
-{
-    U               Euler;
-    T               Analytical;
-}
-
 particleForces
 {
     gravity             on;
diff --git a/tutorials/lagrangian/porousExplicitSourceReactingParcelFoam/parcelInBox/constant/reactingCloud1Properties b/tutorials/lagrangian/porousExplicitSourceReactingParcelFoam/parcelInBox/constant/reactingCloud1Properties
index 82e218b5a23aeb3703be546b3bfe4ece2dc33ed2..5a4ad7e91500b97bbedaa57d7e5b13f07a682312 100644
--- a/tutorials/lagrangian/porousExplicitSourceReactingParcelFoam/parcelInBox/constant/reactingCloud1Properties
+++ b/tutorials/lagrangian/porousExplicitSourceReactingParcelFoam/parcelInBox/constant/reactingCloud1Properties
@@ -15,13 +15,30 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-active          true;
+solution
+{
+    active          true;
+    coupled         false;
+    cellValueSourceCorrection off;
 
-radiation       off;
+    interpolationSchemes
+    {
+        rho             cell;
+        U               cellPoint;
+        mu              cell;
+        T               cell;
+        Cp              cell;
+        p               cell;
+    }
 
-coupled         false;
+    integrationSchemes
+    {
+        U               Euler;
+        T               Euler;
+    }
+}
 
-cellValueSourceCorrection off;
+radiation       off;
 
 parcelTypeId    1;
 
@@ -46,22 +63,6 @@ constantProperties
     constantVolume  false;
 }
 
-interpolationSchemes
-{
-    rho             cell;
-    U               cellPoint;
-    mu              cell;
-    T               cell;
-    Cp              cell;
-    p               cell;
-}
-
-integrationSchemes
-{
-    U               Euler;
-    T               Euler;
-}
-
 particleForces
 {
     gravity         on;
diff --git a/tutorials/lagrangian/porousExplicitSourceReactingParcelFoam/verticalChannel/constant/reactingCloud1Properties b/tutorials/lagrangian/porousExplicitSourceReactingParcelFoam/verticalChannel/constant/reactingCloud1Properties
index 83dc18816a97caec8c27fc1bf0074c2aee842e03..4c127591eb2654ef59c91e6d97446042d7d78977 100644
--- a/tutorials/lagrangian/porousExplicitSourceReactingParcelFoam/verticalChannel/constant/reactingCloud1Properties
+++ b/tutorials/lagrangian/porousExplicitSourceReactingParcelFoam/verticalChannel/constant/reactingCloud1Properties
@@ -15,13 +15,30 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-active          true;
+solution
+{
+    active          true;
+    coupled         true;
+    cellValueSourceCorrection on;
 
-radiation       off;
+    interpolationSchemes
+    {
+        rho             cell;
+        U               cellPoint;
+        mu              cell;
+        T               cell;
+        Cp              cell;
+        p               cell;
+    }
 
-coupled         true;
+    integrationSchemes
+    {
+        U               Euler;
+        T               Analytical;
+    }
+}
 
-cellValueSourceCorrection on;
+radiation       off;
 
 parcelTypeId    1;
 
@@ -46,22 +63,6 @@ constantProperties
     constantVolume  false;
 }
 
-interpolationSchemes
-{
-    rho             cell;
-    U               cellPoint;
-    mu              cell;
-    T               cell;
-    Cp              cell;
-    p               cell;
-}
-
-integrationSchemes
-{
-    U               Euler;
-    T               Analytical;
-}
-
 particleForces
 {
     gravity         on;
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/evaporationTest/constant/reactingCloud1Properties b/tutorials/lagrangian/reactingParcelFilmFoam/evaporationTest/constant/reactingCloud1Properties
index da06cb5025c383efda73975ecb85bece0ba82cf2..33a3f9916d22e22e30dc14db62e93a3e8e8c9c56 100644
--- a/tutorials/lagrangian/reactingParcelFilmFoam/evaporationTest/constant/reactingCloud1Properties
+++ b/tutorials/lagrangian/reactingParcelFilmFoam/evaporationTest/constant/reactingCloud1Properties
@@ -15,13 +15,30 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-active          false; // true;
+solution
+{
+    active          false; // true;
+    coupled         true;
+    cellValueSourceCorrection on;
 
-radiation       off;
+    interpolationSchemes
+    {
+        rho             cell;
+        U               cell; // cellPoint;
+        mu              cell;
+        T               cell;
+        Cp              cell;
+        p               cell;
+    }
 
-coupled         true;
+    integrationSchemes
+    {
+        U               Euler;
+        T               Analytical;
+    }
+}
 
-cellValueSourceCorrection on;
+radiation       off;
 
 parcelTypeId    1;
 
@@ -44,22 +61,6 @@ constantProperties
     poissonsRatio   0;
 }
 
-interpolationSchemes
-{
-    rho             cell;
-    U               cell; // cellPoint;
-    mu              cell;
-    T               cell;
-    Cp              cell;
-    p               cell;
-}
-
-integrationSchemes
-{
-    U               Euler;
-    T               Analytical;
-}
-
 particleForces
 {
     gravity         on;
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/constant/reactingCloud1Properties b/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/constant/reactingCloud1Properties
index 41d7d0ea06e3953cc058a5f794b5786f7e0ce88d..50a9d5474651a4c5c43a3f86089030be32e60f08 100644
--- a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/constant/reactingCloud1Properties
+++ b/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/constant/reactingCloud1Properties
@@ -15,13 +15,30 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-active          true;
+solution
+{
+    active          true;
+    coupled         true;
+    cellValueSourceCorrection on;
 
-radiation       off;
+    interpolationSchemes
+    {
+        rho             cell;
+        U               cell; // cellPoint;
+        mu              cell;
+        T               cell;
+        Cp              cell;
+        p               cell;
+    }
 
-coupled         true;
+    integrationSchemes
+    {
+        U               Euler;
+        T               Analytical;
+    }
+}
 
-cellValueSourceCorrection on;
+radiation       off;
 
 parcelTypeId    1;
 
@@ -44,22 +61,6 @@ constantProperties
     constantVolume  false;
 }
 
-interpolationSchemes
-{
-    rho             cell;
-    U               cell; // cellPoint;
-    mu              cell;
-    T               cell;
-    Cp              cell;
-    p               cell;
-}
-
-integrationSchemes
-{
-    U               Euler;
-    T               Analytical;
-}
-
 particleForces
 {
     gravity         on;
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/multipleBoxes/constant/reactingCloud1Properties b/tutorials/lagrangian/reactingParcelFilmFoam/multipleBoxes/constant/reactingCloud1Properties
index c2f0120ecd47fa55e53dfba7b0ef8596b5e21dad..4eaa6683108d7c36bd72d77edefc5fb02a18636f 100644
--- a/tutorials/lagrangian/reactingParcelFilmFoam/multipleBoxes/constant/reactingCloud1Properties
+++ b/tutorials/lagrangian/reactingParcelFilmFoam/multipleBoxes/constant/reactingCloud1Properties
@@ -15,13 +15,30 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-active          true;
+solution
+{
+    active          true;
+    coupled         true;
+    cellValueSourceCorrection on;
 
-radiation       off;
+    interpolationSchemes
+    {
+        rho             cell;
+        U               cell; // cellPoint;
+        mu              cell;
+        T               cell;
+        Cp              cell;
+        p               cell;
+    }
 
-coupled         true;
+    integrationSchemes
+    {
+        U               Euler;
+        T               Analytical;
+    }
+}
 
-cellValueSourceCorrection on;
+radiation       off;
 
 parcelTypeId    1;
 
@@ -44,22 +61,6 @@ constantProperties
     constantVolume  false;
 }
 
-interpolationSchemes
-{
-    rho             cell;
-    U               cell; // cellPoint;
-    mu              cell;
-    T               cell;
-    Cp              cell;
-    p               cell;
-}
-
-integrationSchemes
-{
-    U               Euler;
-    T               Analytical;
-}
-
 particleForces
 {
     gravity             on;
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/panel/constant/reactingCloud1Properties b/tutorials/lagrangian/reactingParcelFilmFoam/panel/constant/reactingCloud1Properties
index eeb34eafa1f6e004a655ab9d995b0e9347ae9c08..dc73bbf25dbe91f3f5cd93f52b470c42720d2ab0 100644
--- a/tutorials/lagrangian/reactingParcelFilmFoam/panel/constant/reactingCloud1Properties
+++ b/tutorials/lagrangian/reactingParcelFilmFoam/panel/constant/reactingCloud1Properties
@@ -15,13 +15,30 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-active          false; // true;
+solution
+{
+    active          false; // true;
+    coupled         true;
+    cellValueSourceCorrection on;
 
-radiation       off;
+    interpolationSchemes
+    {
+        rho             cell;
+        U               cell; // cellPoint;
+        mu              cell;
+        T               cell;
+        Cp              cell;
+        p               cell;
+    }
 
-coupled         true;
+    integrationSchemes
+    {
+        U               Euler;
+        T               Analytical;
+    }
+}
 
-cellValueSourceCorrection on;
+radiation       off;
 
 parcelTypeId    1;
 
@@ -44,22 +61,6 @@ constantProperties
     constantVolume  false;
 }
 
-interpolationSchemes
-{
-    rho             cell;
-    U               cell; // cellPoint;
-    mu              cell;
-    T               cell;
-    Cp              cell;
-    p               cell;
-}
-
-integrationSchemes
-{
-    U               Euler;
-    T               Analytical;
-}
-
 particleForces
 {
     gravity             on;
diff --git a/tutorials/lagrangian/reactingParcelFoam/evaporationTest/constant/reactingCloud1Properties b/tutorials/lagrangian/reactingParcelFoam/evaporationTest/constant/reactingCloud1Properties
index 7860f4896496062be9b4fece845917e17ce840dd..33aba59d3e9f0d3d36e9c450312f8f705a557bb2 100644
--- a/tutorials/lagrangian/reactingParcelFoam/evaporationTest/constant/reactingCloud1Properties
+++ b/tutorials/lagrangian/reactingParcelFoam/evaporationTest/constant/reactingCloud1Properties
@@ -15,13 +15,30 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-active          true;
+solution
+{
+    active          true;
+    coupled         true;
+    cellValueSourceCorrection on;
 
-radiation       off;
+    interpolationSchemes
+    {
+        rho             cell;
+        U               cellPoint;
+        mu              cell;
+        T               cell;
+        Cp              cell;
+        p               cell;
+    }
 
-coupled         true;
+    integrationSchemes
+    {
+        U               Euler;
+        T               Analytical;
+    }
+}
 
-cellValueSourceCorrection on;
+radiation       off;
 
 parcelTypeId    1;
 
@@ -44,22 +61,6 @@ constantProperties
     constantVolume  false;
 }
 
-interpolationSchemes
-{
-    rho             cell;
-    U               cellPoint;
-    mu              cell;
-    T               cell;
-    Cp              cell;
-    p               cell;
-}
-
-integrationSchemes
-{
-    U               Euler;
-    T               Analytical;
-}
-
 particleForces
 {
     gravity             off;
diff --git a/tutorials/lagrangian/rhoPisoTwinParcelFoam/simplifiedSiwek/constant/kinematicCloud1Properties b/tutorials/lagrangian/rhoPisoTwinParcelFoam/simplifiedSiwek/constant/kinematicCloud1Properties
index 0a2e6e40cc893d2c34d52707daa047cd08e64491..29fccecae6d374332fe80349f17395455c55098f 100644
--- a/tutorials/lagrangian/rhoPisoTwinParcelFoam/simplifiedSiwek/constant/kinematicCloud1Properties
+++ b/tutorials/lagrangian/rhoPisoTwinParcelFoam/simplifiedSiwek/constant/kinematicCloud1Properties
@@ -15,11 +15,24 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-active          true;
+solution
+{
+    active          true;
+    coupled         true;
+    cellValueSourceCorrection on;
 
-coupled         true;
+    interpolationSchemes
+    {
+        rho             cell;
+        U               cellPoint;
+        mu              cell;
+    }
 
-cellValueSourceCorrection on;
+    integrationSchemes
+    {
+        U               Euler;
+    }
+}
 
 parcelTypeId    2;
 
@@ -32,18 +45,6 @@ constantProperties
     poissonsRatio   0.35;
 }
 
-interpolationSchemes
-{
-    rho             cell;
-    U               cellPoint;
-    mu              cell;
-}
-
-integrationSchemes
-{
-    U               Euler;
-}
-
 particleForces
 {
     gravity             on;
diff --git a/tutorials/lagrangian/rhoPisoTwinParcelFoam/simplifiedSiwek/constant/thermoCloud1Properties b/tutorials/lagrangian/rhoPisoTwinParcelFoam/simplifiedSiwek/constant/thermoCloud1Properties
index 9f3b816eb3b3e20fca0e8667273e8d41435bc45b..6ab1d7eb67846c551d66a4bd7a6a6c72515b6d29 100644
--- a/tutorials/lagrangian/rhoPisoTwinParcelFoam/simplifiedSiwek/constant/thermoCloud1Properties
+++ b/tutorials/lagrangian/rhoPisoTwinParcelFoam/simplifiedSiwek/constant/thermoCloud1Properties
@@ -15,13 +15,29 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-active          true;
+solution
+{
+    active          true;
+    coupled         true;
+    cellValueSourceCorrection on;
 
-radiation       off;
+    interpolationSchemes
+    {
+        rho             cell;
+        mu              cell;
+        U               cellPoint;
+        T               cell;
+        Cp              cell;
+    }
 
-coupled         true;
+    integrationSchemes
+    {
+        U               Euler;
+        T               Analytical;
+    }
+}
 
-cellValueSourceCorrection on;
+radiation       off;
 
 parcelTypeId    1;
 
@@ -40,21 +56,6 @@ constantProperties
     Pr              0.7;
 }
 
-interpolationSchemes
-{
-    rho             cell;
-    mu              cell;
-    U               cellPoint;
-    T               cell;
-    Cp              cell;
-}
-
-integrationSchemes
-{
-    U               Euler;
-    T               Analytical;
-}
-
 particleForces
 {
     gravity             on;