diff --git a/src/thermophysicalModels/reactionThermo/Make/files b/src/thermophysicalModels/reactionThermo/Make/files
index d90ed39720a04730a39dc37561280a8dccdb217b..fa58c873121786567384b46890cc731df7ed050b 100644
--- a/src/thermophysicalModels/reactionThermo/Make/files
+++ b/src/thermophysicalModels/reactionThermo/Make/files
@@ -9,7 +9,6 @@ psiReactionThermo/psiReactionThermo/psiReactionThermoNew.C
 psiReactionThermo/hePsiReactionThermo/hePsiReactionThermos.C
 
 psiReactionThermo/psiuReactionThermo/psiuReactionThermo.C
-psiReactionThermo/psiuReactionThermo/psiuReactionThermoNew.C
 psiReactionThermo/heheuReactionThermo/heheuReactionThermos.C
 
 rhoReactionThermo/rhoReactionThermo/rhoReactionThermo.C
diff --git a/src/thermophysicalModels/reactionThermo/psiReactionThermo/psiReactionThermo/psiReactionThermo.C b/src/thermophysicalModels/reactionThermo/psiReactionThermo/psiReactionThermo/psiReactionThermo.C
index 42e319c7d5388be49ac1ed4bc1291c4629fb8d2a..c0afb6a513d133de0e7a26c0b4f76220af28fd61 100644
--- a/src/thermophysicalModels/reactionThermo/psiReactionThermo/psiReactionThermo/psiReactionThermo.C
+++ b/src/thermophysicalModels/reactionThermo/psiReactionThermo/psiReactionThermo/psiReactionThermo.C
@@ -42,6 +42,17 @@ Foam::psiReactionThermo::psiReactionThermo(const fvMesh& mesh)
 {}
 
 
+// * * * * * * * * * * * * * * * * Selectors * * * * * * * * * * * * * * * * //
+
+Foam::autoPtr<Foam::psiReactionThermo> Foam::psiReactionThermo::New
+(
+    const fvMesh& mesh
+)
+{
+    return basicThermo::New<psiReactionThermo>(mesh);
+}
+
+
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
 
 Foam::psiReactionThermo::~psiReactionThermo()
diff --git a/src/thermophysicalModels/reactionThermo/psiReactionThermo/psiReactionThermo/psiReactionThermoNew.C b/src/thermophysicalModels/reactionThermo/psiReactionThermo/psiReactionThermo/psiReactionThermoNew.C
index 794f4259efded5e79262cba93a8995adf263b70e..1e0c8c8aa83ed7c7a0483ac76de74beec69ee755 100644
--- a/src/thermophysicalModels/reactionThermo/psiReactionThermo/psiReactionThermo/psiReactionThermoNew.C
+++ b/src/thermophysicalModels/reactionThermo/psiReactionThermo/psiReactionThermo/psiReactionThermoNew.C
@@ -26,8 +26,7 @@ License
 #include "psiReactionThermo.H"
 #include "fvMesh.H"
 
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
+/*
 Foam::autoPtr<Foam::psiReactionThermo> Foam::psiReactionThermo::New
 (
     const fvMesh& mesh
@@ -68,7 +67,7 @@ Foam::autoPtr<Foam::psiReactionThermo> Foam::psiReactionThermo::New
 
     return autoPtr<psiReactionThermo>(cstrIter()(mesh));
 }
-
+*/
 
 Foam::autoPtr<Foam::psiReactionThermo> Foam::psiReactionThermo::NewType
 (
diff --git a/src/thermophysicalModels/reactionThermo/psiReactionThermo/psiuReactionThermo/psiuReactionThermo.C b/src/thermophysicalModels/reactionThermo/psiReactionThermo/psiuReactionThermo/psiuReactionThermo.C
index 18c29d360ad5767323cea12383e50916852b51ef..b5f824c376fa0679b03592d6fe3fcfe33b1bf8f9 100644
--- a/src/thermophysicalModels/reactionThermo/psiReactionThermo/psiuReactionThermo/psiuReactionThermo.C
+++ b/src/thermophysicalModels/reactionThermo/psiReactionThermo/psiuReactionThermo/psiuReactionThermo.C
@@ -106,6 +106,17 @@ psiuReactionThermo::psiuReactionThermo(const fvMesh& mesh)
 {}
 
 
+// * * * * * * * * * * * * * * * * Selectors * * * * * * * * * * * * * * * * //
+
+Foam::autoPtr<Foam::psiuReactionThermo> Foam::psiuReactionThermo::New
+(
+    const fvMesh& mesh
+)
+{
+    return basicThermo::New<psiuReactionThermo>(mesh);
+}
+
+
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
 
 psiuReactionThermo::~psiuReactionThermo()
diff --git a/src/thermophysicalModels/reactionThermo/psiReactionThermo/psiuReactionThermo/psiuReactionThermoNew.C b/src/thermophysicalModels/reactionThermo/psiReactionThermo/psiuReactionThermo/psiuReactionThermoNew.C
deleted file mode 100644
index 12757ba5f840e35d26247b0fa9a2cacb398468fa..0000000000000000000000000000000000000000
--- a/src/thermophysicalModels/reactionThermo/psiReactionThermo/psiuReactionThermo/psiuReactionThermoNew.C
+++ /dev/null
@@ -1,73 +0,0 @@
-/*---------------------------------------------------------------------------*\
-  =========                 |
-  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-   \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
-     \\/     M anipulation  |
--------------------------------------------------------------------------------
-License
-    This file is part of OpenFOAM.
-
-    OpenFOAM is free software: you can redistribute it and/or modify it
-    under the terms of the GNU General Public License as published by
-    the Free Software Foundation, either version 3 of the License, or
-    (at your option) any later version.
-
-    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
-    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-    for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
-
-\*---------------------------------------------------------------------------*/
-
-#include "psiuReactionThermo.H"
-#include "fvMesh.H"
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-Foam::autoPtr<Foam::psiuReactionThermo> Foam::psiuReactionThermo::New
-(
-    const fvMesh& mesh
-)
-{
-    // get model name, but do not register the dictionary
-    // otherwise it is registered in the database twice
-    const word modelType
-    (
-        IOdictionary
-        (
-            IOobject
-            (
-                "thermophysicalProperties",
-                mesh.time().constant(),
-                mesh,
-                IOobject::MUST_READ_IF_MODIFIED,
-                IOobject::NO_WRITE,
-                false
-            )
-        ).lookup("thermoType")
-    );
-
-    Info<< "Selecting thermodynamics package " << modelType << endl;
-
-    fvMeshConstructorTable::iterator cstrIter =
-        fvMeshConstructorTablePtr_->find(modelType);
-
-    if (cstrIter == fvMeshConstructorTablePtr_->end())
-    {
-        FatalErrorIn("psiuReactionThermo::New(const fvMesh&)")
-            << "Unknown psiuReactionThermo type "
-            << modelType << nl << nl
-            << "Valid psiuReactionThermo types are :" << endl
-            << fvMeshConstructorTablePtr_->sortedToc()
-            << exit(FatalError);
-    }
-
-    return autoPtr<psiuReactionThermo>(cstrIter()(mesh));
-}
-
-
-// ************************************************************************* //
diff --git a/src/thermophysicalModels/reactionThermo/rhoReactionThermo/rhoReactionThermo/rhoReactionThermo.C b/src/thermophysicalModels/reactionThermo/rhoReactionThermo/rhoReactionThermo/rhoReactionThermo.C
index 5b131929a672776adcf0e97b01bfaa7fb2a6a9de..ef056e426762191d0feda4ca4496755812889ea1 100644
--- a/src/thermophysicalModels/reactionThermo/rhoReactionThermo/rhoReactionThermo/rhoReactionThermo.C
+++ b/src/thermophysicalModels/reactionThermo/rhoReactionThermo/rhoReactionThermo/rhoReactionThermo.C
@@ -42,6 +42,17 @@ Foam::rhoReactionThermo::rhoReactionThermo(const fvMesh& mesh)
 {}
 
 
+// * * * * * * * * * * * * * * * * Selectors * * * * * * * * * * * * * * * * //
+
+Foam::autoPtr<Foam::rhoReactionThermo> Foam::rhoReactionThermo::New
+(
+    const fvMesh& mesh
+)
+{
+    return basicThermo::New<rhoReactionThermo>(mesh);
+}
+
+
 // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
 
 Foam::rhoReactionThermo::~rhoReactionThermo()
diff --git a/src/thermophysicalModels/reactionThermo/rhoReactionThermo/rhoReactionThermo/rhoReactionThermoNew.C b/src/thermophysicalModels/reactionThermo/rhoReactionThermo/rhoReactionThermo/rhoReactionThermoNew.C
index a331040618e65d39b31423ce78196c068cfc2bbd..8530d2cd3ba93af36d724d281ea20a778a6e7b04 100644
--- a/src/thermophysicalModels/reactionThermo/rhoReactionThermo/rhoReactionThermo/rhoReactionThermoNew.C
+++ b/src/thermophysicalModels/reactionThermo/rhoReactionThermo/rhoReactionThermo/rhoReactionThermoNew.C
@@ -26,8 +26,7 @@ License
 #include "rhoReactionThermo.H"
 #include "fvMesh.H"
 
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
+/*
 Foam::autoPtr<Foam::rhoReactionThermo> Foam::rhoReactionThermo::New
 (
     const fvMesh& mesh
@@ -68,6 +67,7 @@ Foam::autoPtr<Foam::rhoReactionThermo> Foam::rhoReactionThermo::New
 
     return autoPtr<rhoReactionThermo>(cstrIter()(mesh));
 }
+*/
 
 
 Foam::autoPtr<Foam::rhoReactionThermo> Foam::rhoReactionThermo::NewType
diff --git a/tutorials/combustion/PDRFoam/flamePropagationWithObstacles/constant/thermophysicalProperties b/tutorials/combustion/PDRFoam/flamePropagationWithObstacles/constant/thermophysicalProperties
index 519e0e6d78bce0359f0d8afd7802959213208568..c7426d104eb10bcc25ec7208dd6d20f3a3efa1fd 100644
--- a/tutorials/combustion/PDRFoam/flamePropagationWithObstacles/constant/thermophysicalProperties
+++ b/tutorials/combustion/PDRFoam/flamePropagationWithObstacles/constant/thermophysicalProperties
@@ -15,7 +15,16 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType  heheuReactionThermo<inhomogeneousMixture<sutherlandTransport<janafThermo<perfectGas<specie>>,absoluteEnthalpy>>>;
+thermoType
+{
+    type            heheuReactionThermo;
+    mixture         inhomogeneousMixture;
+    transport       sutherlandTransport;
+    thermo          janafThermo;
+    equationOfState perfectGas;
+    specie          specie;
+    energy          absoluteEnthalpy;
+}
 
 stoichiometricAirFuelMassRatio  stoichiometricAirFuelMassRatio [0 0 0 0 0 0 0] 15.5776;
 
diff --git a/tutorials/combustion/XiFoam/ras/moriyoshiHomogeneous/constant/polyMesh/boundary b/tutorials/combustion/XiFoam/ras/moriyoshiHomogeneous/constant/polyMesh/boundary
index 2c67db9e2b63258a5d8603333f1eb8186ded2426..bcc6d4798f6271de04a4e55e2f06133fd728edfc 100644
--- a/tutorials/combustion/XiFoam/ras/moriyoshiHomogeneous/constant/polyMesh/boundary
+++ b/tutorials/combustion/XiFoam/ras/moriyoshiHomogeneous/constant/polyMesh/boundary
@@ -20,30 +20,35 @@ FoamFile
     left
     {
         type            symmetryPlane;
+        inGroups        1(symmetryPlane);
         nFaces          35;
         startFace       4795;
     }
     right
     {
         type            symmetryPlane;
+        inGroups        1(symmetryPlane);
         nFaces          35;
         startFace       4830;
     }
     top
     {
         type            symmetryPlane;
+        inGroups        1(symmetryPlane);
         nFaces          70;
         startFace       4865;
     }
     bottom
     {
         type            symmetryPlane;
+        inGroups        1(symmetryPlane);
         nFaces          70;
         startFace       4935;
     }
     frontAndBack
     {
         type            empty;
+        inGroups        1(empty);
         nFaces          4900;
         startFace       5005;
     }
diff --git a/tutorials/combustion/XiFoam/ras/moriyoshiHomogeneous/constant/thermophysicalProperties b/tutorials/combustion/XiFoam/ras/moriyoshiHomogeneous/constant/thermophysicalProperties
index 7b90190601a0376cf20b5a73104dba6030adb3fe..d265c0bc1aab07c1915ff3851751128868b13cc4 100644
--- a/tutorials/combustion/XiFoam/ras/moriyoshiHomogeneous/constant/thermophysicalProperties
+++ b/tutorials/combustion/XiFoam/ras/moriyoshiHomogeneous/constant/thermophysicalProperties
@@ -15,7 +15,16 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType heheuReactionThermo<homogeneousMixture<sutherlandTransport<janafThermo<perfectGas<specie>>,absoluteEnthalpy>>>;
+thermoType
+{
+    type            heheuReactionThermo;
+    mixture         homogeneousMixture;
+    transport       sutherlandTransport;
+    thermo          janafThermo;
+    equationOfState perfectGas;
+    specie          specie;
+    energy          absoluteEnthalpy;
+}
 
 stoichiometricAirFuelMassRatio stoichiometricAirFuelMassRatio [ 0 0 0 0 0 0 0 ] 15.675;
 
diff --git a/tutorials/combustion/engineFoam/kivaTest/constant/thermophysicalProperties b/tutorials/combustion/engineFoam/kivaTest/constant/thermophysicalProperties
index f0ce1adb1ad189ae650a7f7527f318d7b962caf8..29f628b4dc0561baea5052058bb159397effb6b3 100644
--- a/tutorials/combustion/engineFoam/kivaTest/constant/thermophysicalProperties
+++ b/tutorials/combustion/engineFoam/kivaTest/constant/thermophysicalProperties
@@ -15,7 +15,16 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-thermoType      heheuReactionThermo<inhomogeneousMixture<sutherlandTransport<janafThermo<perfectGas<specie>>,absoluteEnthalpy>>>;
+thermoType
+{
+    type            heheuReactionThermo;
+    mixture         inhomogeneousMixture;
+    transport       sutherlandTransport;
+    thermo          janafThermo;
+    equationOfState perfectGas;
+    specie          specie;
+    energy          absoluteEnthalpy;
+}
 
 stoichiometricAirFuelMassRatio stoichiometricAirFuelMassRatio [ 0 0 0 0 0 0 0 ] 15.0336;