diff --git a/applications/solvers/multiphase/interFoam/interMixingFoam/createFields.H b/applications/solvers/multiphase/interFoam/interMixingFoam/createFields.H
index a425d40e7f268bb2a6ae334ee3cf81eb22913856..196c82194c9fdac753607d426491c67f5dbaf972 100644
--- a/applications/solvers/multiphase/interFoam/interMixingFoam/createFields.H
+++ b/applications/solvers/multiphase/interFoam/interMixingFoam/createFields.H
@@ -12,53 +12,6 @@
         mesh
     );
 
-    Info<< "Reading field alpha1\n" << endl;
-    volScalarField alpha1
-    (
-        IOobject
-        (
-            "alpha1",
-            runTime.timeName(),
-            mesh,
-            IOobject::MUST_READ,
-            IOobject::AUTO_WRITE
-        ),
-        mesh
-    );
-
-
-    Info<< "Reading field alpha2\n" << endl;
-    volScalarField alpha2
-    (
-        IOobject
-        (
-            "alpha2",
-            runTime.timeName(),
-            mesh,
-            IOobject::MUST_READ,
-            IOobject::AUTO_WRITE
-        ),
-        mesh
-    );
-
-
-    Info<< "Reading field alpha3\n" << endl;
-    volScalarField alpha3
-    (
-        IOobject
-        (
-            "alpha3",
-            runTime.timeName(),
-            mesh,
-            IOobject::MUST_READ,
-            IOobject::AUTO_WRITE
-        ),
-        mesh
-    );
-
-    alpha3 == 1.0 - alpha1 - alpha2;
-
-
     Info<< "Reading field U\n" << endl;
     volVectorField U
     (
@@ -77,6 +30,10 @@
 
     threePhaseMixture threePhaseProperties(U, phi);
 
+    volScalarField& alpha1(threePhaseProperties.alpha1());
+    volScalarField& alpha2(threePhaseProperties.alpha2());
+    volScalarField& alpha3(threePhaseProperties.alpha3());
+
     const dimensionedScalar& rho1 = threePhaseProperties.rho1();
     const dimensionedScalar& rho2 = threePhaseProperties.rho2();
     const dimensionedScalar& rho3 = threePhaseProperties.rho3();
diff --git a/applications/solvers/multiphase/interFoam/interMixingFoam/incompressibleThreePhaseMixture/threePhaseMixture.C b/applications/solvers/multiphase/interFoam/interMixingFoam/incompressibleThreePhaseMixture/threePhaseMixture.C
index fbf1e10ce3252dd4e4009de0c71abc2697e0f512..fa9b8eb8ddcb87010e1583395157f16ea5488883 100644
--- a/applications/solvers/multiphase/interFoam/interMixingFoam/incompressibleThreePhaseMixture/threePhaseMixture.C
+++ b/applications/solvers/multiphase/interFoam/interMixingFoam/incompressibleThreePhaseMixture/threePhaseMixture.C
@@ -62,9 +62,64 @@ Foam::threePhaseMixture::threePhaseMixture
         )
     ),
 
-    phase1Name_("phase1"),
-    phase2Name_("phase2"),
-    phase3Name_("phase3"),
+    phase1Name_(wordList(lookup("phases"))[0]),
+    phase2Name_(wordList(lookup("phases"))[1]),
+    phase3Name_(wordList(lookup("phases"))[2]),
+
+    alpha1_
+    (
+        IOobject
+        (
+            IOobject::groupName("alpha", phase1Name_),
+            U.time().timeName(),
+            U.mesh(),
+            IOobject::MUST_READ,
+            IOobject::AUTO_WRITE
+        ),
+        U.mesh()
+    ),
+
+    alpha2_
+    (
+        IOobject
+        (
+            IOobject::groupName("alpha", phase2Name_),
+            U.time().timeName(),
+            U.mesh(),
+            IOobject::MUST_READ,
+            IOobject::AUTO_WRITE
+        ),
+        U.mesh()
+    ),
+
+    alpha3_
+    (
+        IOobject
+        (
+            IOobject::groupName("alpha", phase3Name_),
+            U.time().timeName(),
+            U.mesh(),
+            IOobject::MUST_READ,
+            IOobject::AUTO_WRITE
+        ),
+        U.mesh()
+    ),
+
+    U_(U),
+    phi_(phi),
+
+    nu_
+    (
+        IOobject
+        (
+            "nu",
+            U.time().timeName(),
+            U.db()
+        ),
+        U.mesh(),
+        dimensionedScalar("nu", dimensionSet(0, 2, -1, 0, 0), 0),
+        calculatedFvPatchScalarField::typeName
+    ),
 
     nuModel1_
     (
@@ -99,28 +154,9 @@ Foam::threePhaseMixture::threePhaseMixture
 
     rho1_(nuModel1_->viscosityProperties().lookup("rho")),
     rho2_(nuModel2_->viscosityProperties().lookup("rho")),
-    rho3_(nuModel3_->viscosityProperties().lookup("rho")),
-
-    U_(U),
-    phi_(phi),
-
-    alpha1_(U_.db().lookupObject<const volScalarField> ("alpha1")),
-    alpha2_(U_.db().lookupObject<const volScalarField> ("alpha2")),
-    alpha3_(U_.db().lookupObject<const volScalarField> ("alpha3")),
-
-    nu_
-    (
-        IOobject
-        (
-            "nu",
-            U_.time().timeName(),
-            U_.db()
-        ),
-        U_.mesh(),
-        dimensionedScalar("nu", dimensionSet(0, 2, -1, 0, 0), 0),
-        calculatedFvPatchScalarField::typeName
-    )
+    rho3_(nuModel3_->viscosityProperties().lookup("rho"))
 {
+    alpha3_ == 1.0 - alpha1_ - alpha2_;
     calcNu();
 }
 
diff --git a/applications/solvers/multiphase/interFoam/interMixingFoam/incompressibleThreePhaseMixture/threePhaseMixture.H b/applications/solvers/multiphase/interFoam/interMixingFoam/incompressibleThreePhaseMixture/threePhaseMixture.H
index 3c8b8739838aefe948a4ec5a9aebacf4104f9626..daf0f2088baf78fd807fe941aa65d2495751b05c 100644
--- a/applications/solvers/multiphase/interFoam/interMixingFoam/incompressibleThreePhaseMixture/threePhaseMixture.H
+++ b/applications/solvers/multiphase/interFoam/interMixingFoam/incompressibleThreePhaseMixture/threePhaseMixture.H
@@ -60,6 +60,15 @@ class threePhaseMixture
         word phase2Name_;
         word phase3Name_;
 
+        volScalarField alpha1_;
+        volScalarField alpha2_;
+        volScalarField alpha3_;
+
+        const volVectorField& U_;
+        const surfaceScalarField& phi_;
+
+        volScalarField nu_;
+
         autoPtr<viscosityModel> nuModel1_;
         autoPtr<viscosityModel> nuModel2_;
         autoPtr<viscosityModel> nuModel3_;
@@ -68,15 +77,6 @@ class threePhaseMixture
         dimensionedScalar rho2_;
         dimensionedScalar rho3_;
 
-        const volVectorField& U_;
-        const surfaceScalarField& phi_;
-
-        const volScalarField& alpha1_;
-        const volScalarField& alpha2_;
-        const volScalarField& alpha3_;
-
-        volScalarField nu_;
-
 
     // Private Member Functions
 
@@ -103,22 +103,49 @@ public:
 
     // Member Functions
 
-        //- Return const-access to phase1 viscosityModel
-        const viscosityModel& nuModel1() const
+        const word phase1Name() const
         {
-            return nuModel1_();
+            return phase1Name_;
         }
 
-        //- Return const-access to phase2 viscosityModel
-        const viscosityModel& nuModel2() const
+        const word phase2Name() const
         {
-            return nuModel2_();
+            return phase2Name_;
         }
 
-        //- Return const-access to phase3 viscosityModel
-        const viscosityModel& nuModel3() const
+        const word phase3Name() const
         {
-            return nuModel3_();
+            return phase3Name_;
+        }
+
+        const volScalarField& alpha1() const
+        {
+            return alpha1_;
+        }
+
+        volScalarField& alpha1()
+        {
+            return alpha1_;
+        }
+
+        const volScalarField& alpha2() const
+        {
+            return alpha2_;
+        }
+
+        volScalarField& alpha2()
+        {
+            return alpha2_;
+        }
+
+        const volScalarField& alpha3() const
+        {
+            return alpha3_;
+        }
+
+        volScalarField& alpha3()
+        {
+            return alpha3_;
         }
 
         //- Return const-access to phase1 density
@@ -139,31 +166,34 @@ public:
             return rho3_;
         };
 
-        const volScalarField& alpha1() const
+        //- Return the velocity
+        const volVectorField& U() const
         {
-            return alpha1_;
+            return U_;
         }
 
-        const volScalarField& alpha2() const
+        //- Return the flux
+        const surfaceScalarField& phi() const
         {
-            return alpha2_;
+            return phi_;
         }
 
-        const volScalarField& alpha3() const
+        //- Return const-access to phase1 viscosityModel
+        const viscosityModel& nuModel1() const
         {
-            return alpha3_;
+            return nuModel1_();
         }
 
-        //- Return the velocity
-        const volVectorField& U() const
+        //- Return const-access to phase2 viscosityModel
+        const viscosityModel& nuModel2() const
         {
-            return U_;
+            return nuModel2_();
         }
 
-        //- Return the flux
-        const surfaceScalarField& phi() const
+        //- Return const-access to phase3 viscosityModel
+        const viscosityModel& nuModel3() const
         {
-            return phi_;
+            return nuModel3_();
         }
 
         //- Return the dynamic laminar viscosity
diff --git a/tutorials/multiphase/interMixingFoam/laminar/damBreak/0/alpha1.org b/tutorials/multiphase/interMixingFoam/laminar/damBreak/0/alpha.air.org
similarity index 97%
rename from tutorials/multiphase/interMixingFoam/laminar/damBreak/0/alpha1.org
rename to tutorials/multiphase/interMixingFoam/laminar/damBreak/0/alpha.air.org
index 04a3a4c143e4c35a22cca011427944f1b7710660..204afda9411402921304430d315a8dc20acc2b32 100644
--- a/tutorials/multiphase/interMixingFoam/laminar/damBreak/0/alpha1.org
+++ b/tutorials/multiphase/interMixingFoam/laminar/damBreak/0/alpha.air.org
@@ -10,7 +10,7 @@ FoamFile
     version     2.0;
     format      ascii;
     class       volScalarField;
-    object      alpha1;
+    object      alpha.air;
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
diff --git a/tutorials/multiphase/interMixingFoam/laminar/damBreak/0/alpha2.org b/tutorials/multiphase/interMixingFoam/laminar/damBreak/0/alpha.other.org
similarity index 100%
rename from tutorials/multiphase/interMixingFoam/laminar/damBreak/0/alpha2.org
rename to tutorials/multiphase/interMixingFoam/laminar/damBreak/0/alpha.other.org
diff --git a/tutorials/multiphase/interMixingFoam/laminar/damBreak/0/alpha3.org b/tutorials/multiphase/interMixingFoam/laminar/damBreak/0/alpha.water.org
similarity index 100%
rename from tutorials/multiphase/interMixingFoam/laminar/damBreak/0/alpha3.org
rename to tutorials/multiphase/interMixingFoam/laminar/damBreak/0/alpha.water.org
diff --git a/tutorials/multiphase/interMixingFoam/laminar/damBreak/Allrun b/tutorials/multiphase/interMixingFoam/laminar/damBreak/Allrun
index 9bb76eb3c726dd6819abcdb1c2e583a7352eae51..c07cc1113c875a4c80b8918764999f0c8bfe8f3a 100755
--- a/tutorials/multiphase/interMixingFoam/laminar/damBreak/Allrun
+++ b/tutorials/multiphase/interMixingFoam/laminar/damBreak/Allrun
@@ -5,9 +5,9 @@ cd ${0%/*} || exit 1    # run from this directory
 . $WM_PROJECT_DIR/bin/tools/RunFunctions
 
 runApplication blockMesh
-cp 0/alpha1.org 0/alpha1
-cp 0/alpha2.org 0/alpha2
-cp 0/alpha3.org 0/alpha3
+cp 0/alpha.air.org 0/alpha.air
+cp 0/alpha.other.org 0/alpha.other
+cp 0/alpha.water.org 0/alpha.water
 runApplication setFields
 runApplication `getApplication`
 
diff --git a/tutorials/multiphase/interMixingFoam/laminar/damBreak/constant/polyMesh/boundary b/tutorials/multiphase/interMixingFoam/laminar/damBreak/constant/polyMesh/boundary
index 41c06d5f3f4d03c47e0a53a8d3008451786eda15..1b4dbb60aaeaec2d5cfe40e3d4a35843d35b44a2 100644
--- a/tutorials/multiphase/interMixingFoam/laminar/damBreak/constant/polyMesh/boundary
+++ b/tutorials/multiphase/interMixingFoam/laminar/damBreak/constant/polyMesh/boundary
@@ -44,6 +44,7 @@ FoamFile
     defaultFaces
     {
         type            empty;
+        inGroups        1(empty);
         nFaces          4536;
         startFace       4640;
     }
diff --git a/tutorials/multiphase/interMixingFoam/laminar/damBreak/constant/transportProperties b/tutorials/multiphase/interMixingFoam/laminar/damBreak/constant/transportProperties
index fac1cbd4fd727bdf83ef442766911711bbed33ad..83c4643a5ae1cab0cef1768471f0de65e056df1c 100644
--- a/tutorials/multiphase/interMixingFoam/laminar/damBreak/constant/transportProperties
+++ b/tutorials/multiphase/interMixingFoam/laminar/damBreak/constant/transportProperties
@@ -15,24 +15,23 @@ FoamFile
 }
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-// Air
-phase1
+phases (air other water);
+
+air
 {
     transportModel  Newtonian;
     nu              nu [0 2 -1 0 0 0 0] 1.48e-05;
     rho             rho [1 -3 0 0 0 0 0] 1;
 }
 
-// Other Liquid
-phase2
+other
 {
     transportModel  Newtonian;
     nu              nu [0 2 -1 0 0 0 0]  1e-6;
     rho             rho [1 -3 0 0 0 0 0] 1010;
 }
 
-// Water
-phase3
+water
 {
     transportModel  Newtonian;
     nu              nu [0 2 -1 0 0 0 0]  1e-6;
diff --git a/tutorials/multiphase/interMixingFoam/laminar/damBreak/system/fvSchemes b/tutorials/multiphase/interMixingFoam/laminar/damBreak/system/fvSchemes
index c80ccb314ef4160a628f59e7e4ffc6d97caa3dd8..ea304e7042cb6bda7221eed5ee0c717684d3f48f 100644
--- a/tutorials/multiphase/interMixingFoam/laminar/damBreak/system/fvSchemes
+++ b/tutorials/multiphase/interMixingFoam/laminar/damBreak/system/fvSchemes
@@ -53,7 +53,7 @@ fluxRequired
     default         no;
     p_rgh;
     pcorr;
-    "alpha.";
+    "alpha.*";
 }
 
 
diff --git a/tutorials/multiphase/interMixingFoam/laminar/damBreak/system/fvSolution b/tutorials/multiphase/interMixingFoam/laminar/damBreak/system/fvSolution
index 235c7014d026ce19570cd1470824b2fdf1bdfcb6..3403701035d1de3c23fdff530462daa2fee8863e 100644
--- a/tutorials/multiphase/interMixingFoam/laminar/damBreak/system/fvSolution
+++ b/tutorials/multiphase/interMixingFoam/laminar/damBreak/system/fvSolution
@@ -17,7 +17,7 @@ FoamFile
 
 solvers
 {
-    "alpha."
+    "alpha.*"
     {
         nAlphaCorr      1;
         nAlphaSubCycles 2;
diff --git a/tutorials/multiphase/interMixingFoam/laminar/damBreak/system/setFieldsDict b/tutorials/multiphase/interMixingFoam/laminar/damBreak/system/setFieldsDict
index 46fd28b2257ca5c06def80caa307c570fb0e2b05..3e8e2ec9835ac999d50dbe986260d33d42dd3eb3 100644
--- a/tutorials/multiphase/interMixingFoam/laminar/damBreak/system/setFieldsDict
+++ b/tutorials/multiphase/interMixingFoam/laminar/damBreak/system/setFieldsDict
@@ -17,9 +17,9 @@ FoamFile
 
 defaultFieldValues
 (
-    volScalarFieldValue alpha1 0
-    volScalarFieldValue alpha2 1
-    volScalarFieldValue alpha3 0
+    volScalarFieldValue alpha.air 0
+    volScalarFieldValue alpha.other 1
+    volScalarFieldValue alpha.water 0
 );
 
 regions
@@ -29,9 +29,9 @@ regions
         box (0 0 -1) (0.1461 0.292 1);
         fieldValues
         (
-            volScalarFieldValue alpha1 0
-            volScalarFieldValue alpha2 0
-            volScalarFieldValue alpha3 1
+            volScalarFieldValue alpha.air 0
+            volScalarFieldValue alpha.other 0
+            volScalarFieldValue alpha.water 1
         );
     }
     boxToCell
@@ -39,9 +39,9 @@ regions
         box (0.1461 0.05 -1) (1 1 1);
         fieldValues
         (
-            volScalarFieldValue alpha1 1
-            volScalarFieldValue alpha2 0
-            volScalarFieldValue alpha3 0
+            volScalarFieldValue alpha.air 1
+            volScalarFieldValue alpha.other 0
+            volScalarFieldValue alpha.water 0
         );
     }
 );