diff --git a/src/dynamicMesh/Allwmake b/src/dynamicMesh/Allwmake
index 67830a8e4..195ad699e 100755
--- a/src/dynamicMesh/Allwmake
+++ b/src/dynamicMesh/Allwmake
@@ -7,7 +7,9 @@ wmake libso dynamicMesh
# Make meshMotion solvers
meshMotion/Allwmake
-wmake libso dynamicFvMesh
+# Make libraries in dynamicFvMesh
+dynamicFvMesh/Allwmake
+
wmake libso topoChangerFvMesh
# ----------------------------------------------------------------- end-of-file
diff --git a/src/dynamicMesh/dynamicFvMesh/Allwclean b/src/dynamicMesh/dynamicFvMesh/Allwclean
new file mode 100755
index 000000000..0db6608b5
--- /dev/null
+++ b/src/dynamicMesh/dynamicFvMesh/Allwclean
@@ -0,0 +1,12 @@
+#!/bin/sh
+cd ${0%/*} || exit 1 # run from this directory
+set -x
+
+# Clean dynamicFvMesh libraries
+wclean
+wclean dynamicTopoFvMesh
+
+# Wipe out all lnInclude directories and re-link
+wcleanLnIncludeAll
+
+# ----------------------------------------------------------------- end-of-file
diff --git a/src/dynamicMesh/dynamicFvMesh/Allwmake b/src/dynamicMesh/dynamicFvMesh/Allwmake
new file mode 100755
index 000000000..0296a437e
--- /dev/null
+++ b/src/dynamicMesh/dynamicFvMesh/Allwmake
@@ -0,0 +1,9 @@
+#!/bin/sh
+cd ${0%/*} || exit 1 # run from this directory
+set -x
+
+# Make dynamicFvMesh libraries
+wmake libso
+wmake libso dynamicTopoFvMesh
+
+# ----------------------------------------------------------------- end-of-file
diff --git a/src/dynamicMesh/dynamicFvMesh/Make/files b/src/dynamicMesh/dynamicFvMesh/Make/files
index 25ed01415..46aee8b5e 100644
--- a/src/dynamicMesh/dynamicFvMesh/Make/files
+++ b/src/dynamicMesh/dynamicFvMesh/Make/files
@@ -17,42 +17,4 @@ turboFvMesh/turboFvMesh.C
fvMeshAdder/fvMeshAdder.C
fvMeshDistribute/fvMeshDistribute.C
-tetMetrics = dynamicTopoFvMesh/tetMetrics
-$(tetMetrics)/tetMetric.C
-$(tetMetrics)/tetMetrics.C
-
-lengthScaleEstimator = dynamicTopoFvMesh/lengthScaleEstimator
-$(lengthScaleEstimator)/lengthScaleEstimator.C
-
-eMesh = dynamicTopoFvMesh/eMesh
-$(eMesh)/eMesh.C
-$(eMesh)/eMeshDemandDrivenData.C
-$(eMesh)/eBoundaryMesh/eBoundaryMesh.C
-ePatches = $(eMesh)/ePatches
-$(ePatches)/ePatch/ePatch.C
-$(ePatches)/ePatch/newEPatch.C
-dynamicTopoFvMesh/meshOps.C
-dynamicTopoFvMesh/dynamicTopoFvMesh.C
-dynamicTopoFvMesh/dynamicTopoFvMeshCheck.C
-dynamicTopoFvMesh/dynamicTopoFvMeshReOrder.C
-dynamicTopoFvMesh/dynamicTopoFvMeshMapping.C
-dynamicTopoFvMesh/dynamicTopoFvMeshCoupled.C
-dynamicTopoFvMesh/edgeSwap.C
-dynamicTopoFvMesh/edgeBisect.C
-dynamicTopoFvMesh/edgeCollapse.C
-
-dynamicTopoFvMesh/coupleMap.C
-
-convexSetAlgorithm = dynamicTopoFvMesh/convexSetAlgorithm
-$(convexSetAlgorithm)/convexSetAlgorithm.C
-$(convexSetAlgorithm)/faceSetAlgorithm.C
-$(convexSetAlgorithm)/cellSetAlgorithm.C
-
-fieldMapping = dynamicTopoFvMesh/fieldMapping
-$(fieldMapping)/topoMapper.C
-$(fieldMapping)/fluxCorrector.C
-$(fieldMapping)/topoCellMapper.C
-$(fieldMapping)/topoPatchMapper.C
-$(fieldMapping)/topoSurfaceMapper.C
-
LIB = $(FOAM_LIBBIN)/libdynamicFvMesh
diff --git a/src/dynamicMesh/dynamicFvMesh/dynamicTopoFvMesh/Make/files b/src/dynamicMesh/dynamicFvMesh/dynamicTopoFvMesh/Make/files
new file mode 100644
index 000000000..c8d77fa87
--- /dev/null
+++ b/src/dynamicMesh/dynamicFvMesh/dynamicTopoFvMesh/Make/files
@@ -0,0 +1,39 @@
+eMesh/eMesh.C
+eMesh/eMeshDemandDrivenData.C
+eMesh/eBoundaryMesh/eBoundaryMesh.C
+
+ePatches = eMesh/ePatches
+$(ePatches)/ePatch/ePatch.C
+$(ePatches)/ePatch/newEPatch.C
+
+dynamicTopoFvMesh.C
+dynamicTopoFvMeshCheck.C
+dynamicTopoFvMeshReOrder.C
+dynamicTopoFvMeshMapping.C
+edgeSwap.C
+edgeBisect.C
+edgeCollapse.C
+
+coupledMesh/coupleMap.C
+coupledMesh/dynamicTopoFvMeshCoupled.C
+coupledMesh/subMeshProcessorPolyPatch.C
+coupledMesh/subMeshProcessorFvPatch.C
+
+convexSetAlgorithm/convexSetAlgorithm.C
+convexSetAlgorithm/faceSetAlgorithm.C
+convexSetAlgorithm/cellSetAlgorithm.C
+
+fieldMapping/topoMapper.C
+fieldMapping/fluxCorrector.C
+fieldMapping/topoCellMapper.C
+fieldMapping/topoPatchMapper.C
+fieldMapping/topoSurfaceMapper.C
+
+tetMetrics = tetMetrics
+$(tetMetrics)/tetMetric.C
+$(tetMetrics)/tetMetrics.C
+
+lengthScaleEstimator = lengthScaleEstimator
+$(lengthScaleEstimator)/lengthScaleEstimator.C
+
+LIB = $(FOAM_LIBBIN)/libdynamicTopoFvMesh
diff --git a/src/dynamicMesh/dynamicFvMesh/dynamicTopoFvMesh/Make/options b/src/dynamicMesh/dynamicFvMesh/dynamicTopoFvMesh/Make/options
new file mode 100644
index 000000000..c276d3ba5
--- /dev/null
+++ b/src/dynamicMesh/dynamicFvMesh/dynamicTopoFvMesh/Make/options
@@ -0,0 +1,13 @@
+EXE_INC = \
+ -I$(LIB_SRC)/meshTools/lnInclude \
+ -I$(LIB_SRC)/dynamicMesh/dynamicMesh/lnInclude \
+ -I$(LIB_SRC)/dynamicMesh/dynamicFvMesh/dynamicFvMesh \
+ -I$(LIB_SRC)/dynamicMesh/dynamicFvMesh/fvMeshDistribute \
+ -I$(LIB_SRC)/decompositionMethods/decompositionMethods/lnInclude \
+ -I$(LIB_SRC)/finiteVolume/lnInclude \
+
+LIB_LIBS = \
+ -ldynamicMesh \
+ -ldynamicFvMesh \
+ -ldecompositionMethods \
+ -lfiniteVolume
diff --git a/src/dynamicMesh/dynamicFvMesh/dynamicTopoFvMesh/convexSetAlgorithm/convexSetAlgorithm.C b/src/dynamicMesh/dynamicFvMesh/dynamicTopoFvMesh/convexSetAlgorithm/convexSetAlgorithm.C
index 46f6de305..b9f73f8b1 100644
--- a/src/dynamicMesh/dynamicFvMesh/dynamicTopoFvMesh/convexSetAlgorithm/convexSetAlgorithm.C
+++ b/src/dynamicMesh/dynamicFvMesh/dynamicTopoFvMesh/convexSetAlgorithm/convexSetAlgorithm.C
@@ -34,7 +34,6 @@ Author
\*---------------------------------------------------------------------------*/
-#include "objectRegistry.H"
#include "Time.H"
#include "IOMap.H"
#include "meshOps.H"
diff --git a/src/dynamicMesh/dynamicFvMesh/dynamicTopoFvMesh/coupledInfo.C b/src/dynamicMesh/dynamicFvMesh/dynamicTopoFvMesh/coupledInfo.C
deleted file mode 100644
index 5eb931ab2..000000000
--- a/src/dynamicMesh/dynamicFvMesh/dynamicTopoFvMesh/coupledInfo.C
+++ /dev/null
@@ -1,647 +0,0 @@
-/*---------------------------------------------------------------------------*\
- ========= |
- \\ / F ield | foam-extend: Open Source CFD
- \\ / O peration |
- \\ / A nd | For copyright notice see file Copyright
- \\/ M anipulation |
--------------------------------------------------------------------------------
-License
- This file is part of foam-extend.
-
- foam-extend 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.
-
- foam-extend 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 foam-extend. If not, see .
-
-\*---------------------------------------------------------------------------*/
-
-#include "Time.H"
-#include "coupledInfo.H"
-#include "dynamicTopoFvMesh.H"
-#include "emptyFvPatchFields.H"
-#include "emptyFvsPatchFields.H"
-#include "fixedValueFvPatchFields.H"
-
-namespace Foam
-{
-
-// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
-
-// Constructor for coupledInfo
-coupledInfo::coupledInfo
-(
- const dynamicTopoFvMesh& mesh,
- const coupleMap& cMap,
- const label mfzIndex,
- const label sfzIndex
-)
-:
- mesh_(mesh),
- builtMaps_(false),
- map_(cMap),
- masterFaceZone_(mfzIndex),
- slaveFaceZone_(sfzIndex)
-{}
-
-
-coupledInfo::coupledInfo
-(
- const dynamicTopoFvMesh& mesh,
- const bool isTwoDMesh,
- const bool isLocal,
- const bool isSend,
- const label patchIndex,
- const label mPatch,
- const label sPatch,
- const label mfzIndex,
- const label sfzIndex
-)
-:
- mesh_(mesh),
- builtMaps_(false),
- map_
- (
- IOobject
- (
- "coupleMap_"
- + Foam::name(mPatch)
- + "_To_"
- + Foam::name(sPatch)
- + word(isLocal ? "_Local" : "_Proc")
- + word(isSend ? "_Send" : "_Recv"),
- mesh.time().timeName(),
- mesh,
- IOobject::NO_READ,
- IOobject::NO_WRITE,
- true
- ),
- isTwoDMesh,
- isLocal,
- isSend,
- patchIndex,
- mPatch,
- sPatch
- ),
- masterFaceZone_(mfzIndex),
- slaveFaceZone_(sfzIndex)
-{}
-
-
-//- Construct given addressing
-coupledInfo::subMeshMapper::subMeshMapper
-(
- const coupledInfo& cInfo,
- const label patchI
-)
-:
- sizeBeforeMapping_(cInfo.baseMesh().boundary()[patchI].size()),
- directAddressing_
- (
- SubList