diff --git a/GeoModelG4/GeoModel2G4/GeoModel2G4/ExtParameterisedVolumeBuilder.h b/GeoModelG4/GeoModel2G4/GeoModel2G4/ExtParameterisedVolumeBuilder.h
index 40046b52c2a3840b6c607f03f203b0aa118cb27f..1b95bd5c908b34bff3560d2bdb13327cf946aa43 100644
--- a/GeoModelG4/GeoModel2G4/GeoModel2G4/ExtParameterisedVolumeBuilder.h
+++ b/GeoModelG4/GeoModel2G4/GeoModel2G4/ExtParameterisedVolumeBuilder.h
@@ -17,9 +17,9 @@ class ExtParameterisedVolumeBuilder: public VolumeBuilder
 public:
   ExtParameterisedVolumeBuilder(std::string n);
   ///
-  G4LogicalVolume* Build(GeoPVConstLink pv) const;
+  G4LogicalVolume* Build(PVConstLink pv) const;
   ///
-  Geo2G4AssemblyVolume* BuildAssembly(GeoPVConstLink pv) const;
+  Geo2G4AssemblyVolume* BuildAssembly(PVConstLink pv) const;
  private:
   /// Prints info when some PhysVol contains both types (PV and ST) of daughters
   void PrintSTInfo(std::string volume) const;
diff --git a/GeoModelG4/GeoModel2G4/GeoModel2G4/VolumeBuilder.h b/GeoModelG4/GeoModel2G4/GeoModel2G4/VolumeBuilder.h
index 4fc98f05631a483e816e3d9d84877b28a7a4074d..ddcee1bca4ff91f4a0d78ad5022470e7415411f9 100644
--- a/GeoModelG4/GeoModel2G4/GeoModel2G4/VolumeBuilder.h
+++ b/GeoModelG4/GeoModel2G4/GeoModel2G4/VolumeBuilder.h
@@ -17,7 +17,7 @@
 
 //typedef std::map< const GeoOpticalPhysVol*, G4VPhysicalVolume*,std::less< const GeoOpticalPhysVol*> > OpticalVolumesMap;
 
-class GeoPVConstLink;
+class PVConstLink;
 class VolumeBuilder
 {
  public:
@@ -36,7 +36,7 @@ class VolumeBuilder
   bool GetParam(){return m_paramOn;}
 
   //virtual G4LogicalVolume* Build(PVConstLink pv, OpticalVolumesMap* optical_volumes = 0) const = 0;
-  virtual G4LogicalVolume* Build(GeoPVConstLink pv) const = 0;
+  virtual G4LogicalVolume* Build(PVConstLink pv) const = 0;
 
  protected:
   bool m_paramOn;
diff --git a/GeoModelTools/GMCAT/src/gmcat.cxx b/GeoModelTools/GMCAT/src/gmcat.cxx
index f2d37bbaa3224828b8298c78b6b88ad2773d51d7..775b83be7f12cdee0e798a8c1aa06151b46d4c0c 100644
--- a/GeoModelTools/GMCAT/src/gmcat.cxx
+++ b/GeoModelTools/GMCAT/src/gmcat.cxx
@@ -11,7 +11,7 @@
 #include "GeoModelKernel/GeoVolumeCursor.h"
 #include "GeoModelKernel/GeoMaterial.h"
 #include "GeoModelKernel/GeoElement.h"
-#include "GeoModelKernel/GeoPVLink.h"
+#include "GeoModelKernel/GeoVPhysVol.h"
 #include "GeoModelKernel/GeoBox.h"
 #include "GeoModelKernel/GeoCountVolAction.h"
 #include "GeoModelKernel/GeoAccessVolumeAction.h"
diff --git a/GeoModelTools/GMSTATISTICS/src/gmstatistics.cxx b/GeoModelTools/GMSTATISTICS/src/gmstatistics.cxx
index 551738da65077dd6c440ed4ef6c3e381e7fc9f17..157c6dd091076ccf7a21849d64ea6b14f3e98e02 100644
--- a/GeoModelTools/GMSTATISTICS/src/gmstatistics.cxx
+++ b/GeoModelTools/GMSTATISTICS/src/gmstatistics.cxx
@@ -7,7 +7,6 @@
 #include "GeoModelKernel/GeoVolumeCursor.h"
 #include "GeoModelKernel/GeoMaterial.h"
 #include "GeoModelKernel/GeoElement.h"
-#include "GeoModelKernel/GeoPVLink.h"
 #include "GeoModelKernel/GeoBox.h"
 #include "GeoModelKernel/GeoCountVolAction.h"
 #include "GeoModelKernel/GeoAccessVolumeAction.h"
diff --git a/GeoModelTools/GeoModelXML/GeoModelXml/src/GmxInterface.cxx b/GeoModelTools/GeoModelXML/GeoModelXml/src/GmxInterface.cxx
index 47b6edf0b7159648ce06d26a07fe848d21cb73ed..2458dd49bfaca0513ee6935366b790a54bbcaf0c 100644
--- a/GeoModelTools/GeoModelXML/GeoModelXml/src/GmxInterface.cxx
+++ b/GeoModelTools/GeoModelXML/GeoModelXml/src/GmxInterface.cxx
@@ -13,7 +13,6 @@
 //
 #include "GeoModelXml/GmxInterface.h"
 #include "OutputDirector.h"
-#include "GeoModelKernel/GeoPVConstLink.h"
 #include "GeoModelKernel/Query.h"
 #include "GeoModelKernel/GeoPhysVol.h"
 #include "GeoModelKernel/GeoVFullPhysVol.h"
@@ -22,12 +21,12 @@
 using namespace std;
 
 int GmxInterface::sensorId(map<string, int> &/*index*/) const {
-  static std::atomic<int> sequentialId;
+  static std::atomic<int> sequentialId{0};
   return sequentialId++;
 }
 
 int GmxInterface::splitSensorId(map<string, int> &/*index*/, std::pair<std::string, int> &/*extraIndex*/, map<string, int> &/*updatedIndex*/) const {
-  static std::atomic<int> sequentialId;
+  static std::atomic<int> sequentialId{0};
   return sequentialId++;
 }
 
diff --git a/GeoModelVisualization/VP1GeometrySystems/VP1GeometrySystems/MuonVolumeHandle.h b/GeoModelVisualization/VP1GeometrySystems/VP1GeometrySystems/MuonVolumeHandle.h
index f3b2d3e1e935781bceec77823f03713f59465e45..6dfa09b676e11daac9633cf647dd6ce34aa1e19a 100644
--- a/GeoModelVisualization/VP1GeometrySystems/VP1GeometrySystems/MuonVolumeHandle.h
+++ b/GeoModelVisualization/VP1GeometrySystems/VP1GeometrySystems/MuonVolumeHandle.h
@@ -22,9 +22,9 @@
 
 class MuonVolumeHandle : public VolumeHandle {
 public:
-  MuonVolumeHandle(VolumeHandleSharedData * shared,VolumeHandle * parent, const GeoPVConstLink& pv,int childNumber,
+  MuonVolumeHandle(VolumeHandleSharedData * shared,VolumeHandle * parent, const PVConstLink& pv,int childNumber,
 		   const MuonChamberState& mcs, const SbMatrix& accumTrans,const MuonGM::MuonStation * station, 
-		   const QList<const std::map<GeoPVConstLink, float>*>& t0s )
+		   const QList<const std::map<PVConstLink, float>*>& t0s )
   : VolumeHandle(shared, parent, pv, childNumber, mcs, accumTrans), m_station(station), m_chamberT0s(t0s)
   {}
   
@@ -41,17 +41,17 @@ public:
   virtual QString muonChamberT0(unsigned int i) const {
     if (static_cast<int>(i)>=m_chamberT0s.size())
       return "ERROR bad T0 source";
-    const std::map<GeoPVConstLink, float>* t0map = m_chamberT0s.at(i);
+    const std::map<PVConstLink, float>* t0map = m_chamberT0s.at(i);
     const QString no_info("?");
     if (!t0map)
       return no_info;
-    const std::map<GeoPVConstLink, float>::const_iterator it = t0map->find(geoPVConstLink());
+    const std::map<PVConstLink, float>::const_iterator it = t0map->find(geoPVConstLink());
     return it==t0map->end() ? no_info : QString::number(it->second);
   }
 
 private:
   const MuonGM::MuonStation * m_station;
-  const QList<const std::map<GeoPVConstLink, float>*>& m_chamberT0s;
+  const QList<const std::map<PVConstLink, float>*>& m_chamberT0s;
 };
 
 #endif
diff --git a/GeoModelVisualization/VP1GeometrySystems/VP1GeometrySystems/VolumeHandle.h b/GeoModelVisualization/VP1GeometrySystems/VP1GeometrySystems/VolumeHandle.h
index 082bb56b25041a356eeed17e40194048e22b3813..f21666c222b015f96787e75adceaed78229a53df 100644
--- a/GeoModelVisualization/VP1GeometrySystems/VP1GeometrySystems/VolumeHandle.h
+++ b/GeoModelVisualization/VP1GeometrySystems/VP1GeometrySystems/VolumeHandle.h
@@ -8,7 +8,7 @@
 #include <vector>
 
 #include "VP1GeometrySystems/VP1GeoFlags.h"
-#include "GeoModelKernel/GeoPVConstLink.h"
+#include "GeoModelKernel/GeoVPhysVol.h"
 #include <QString>
 
 //Only initialises child classes on demand. And even then their SoNodes are not initialised until they must be shown.
@@ -23,7 +23,7 @@ class VolumeHandle {
 public:
 
 
-  VolumeHandle(VolumeHandleSharedData * ,VolumeHandle * parent, const GeoPVConstLink&,int childNumber,
+  VolumeHandle(VolumeHandleSharedData * ,VolumeHandle * parent, const PVConstLink&,int childNumber,
 	       const SbMatrix& accumTrans = SbMatrix() );
 
   virtual ~VolumeHandle();//lots of stuff to do here!
@@ -39,7 +39,7 @@ public:
   int copyNumber() const;//Returns -1 if doesnt have a valid copy number (because volume is not replicated), -2 in case of error.
   quint32 hashID() const;//For vp1 persistification
 
-  GeoPVConstLink geoPVConstLink() const;
+  PVConstLink geoPVConstLink() const;
   const GeoMaterial * geoMaterial() const;
   std::string getNameStdString() const;
 
diff --git a/GeoModelVisualization/VP1GeometrySystems/VP1GeometrySystems/VolumeHandleSharedData.h b/GeoModelVisualization/VP1GeometrySystems/VP1GeometrySystems/VolumeHandleSharedData.h
index f261dbc0fe16122192fd26a701c985913a0e4d99..1ca256c3953fdb6b265bf36b7c2f6021df584343 100644
--- a/GeoModelVisualization/VP1GeometrySystems/VP1GeometrySystems/VolumeHandleSharedData.h
+++ b/GeoModelVisualization/VP1GeometrySystems/VP1GeometrySystems/VolumeHandleSharedData.h
@@ -8,7 +8,7 @@
 //This reference counted class keeps data (and related methods) which are common
 //for all volume handle nodes under a given top-level handle.
 
-#include "GeoModelKernel/GeoPVConstLink.h"
+#include "GeoModelKernel/GeoVPhysVol.h"
 #include "VP1GeometrySystems/VP1GeoFlags.h"
 #include <map>
 class SoNode;
@@ -26,7 +26,7 @@ class GeoSysController;
 class VolumeHandleSharedData {
 public:
   VolumeHandleSharedData(GeoSysController * controller,VP1GeoFlags::SubSystemFlag,std::map<SoSeparator*,VolumeHandle*>* sonodesep2volhandle,
-			 const GeoPVConstLink& motherpV,PhiSectorManager*,
+			 const PVConstLink& motherpV,PhiSectorManager*,
 			 SoMaterial * topMaterial,MatVisAttributes *,VolVisAttributes *,
 			 ZappedVolumeListModel *, VP1GeoTreeView *, SoSeparator*);
   ~VolumeHandleSharedData();
@@ -34,7 +34,7 @@ public:
   void unref();
 
   //Fixme: Inline?
-  GeoPVConstLink geoPVConstLinkOfTreeTopsMother() const;
+  PVConstLink geoPVConstLinkOfTreeTopsMother() const;
   PhiSectorManager* phiSectorManager() const;
   VP1GeoFlags::SubSystemFlag subSystemFlag() const;
   SoMaterial * fallBackTopLevelMaterial() const;
@@ -46,7 +46,7 @@ public:
   void addZappedVolumeToGui(VolumeHandle*);
   void removeZappedVolumesFromGui(VolumeHandle*);
 
-  SoNode * toShapeNode(const GeoPVConstLink& pV, bool *shapeIsKnown=nullptr);//Returns shape of pV->getLogVol() (uses shared instancing as appropriate)
+  SoNode * toShapeNode(const PVConstLink& pV, bool *shapeIsKnown=nullptr);//Returns shape of pV->getLogVol() (uses shared instancing as appropriate)
   SoNode * getSoCylinderOrientedLikeGeoTube(const double& radius, const double& halfLength);//(uses shared instancing as appropriate)
 
   void registerNodeSepForVolumeHandle(SoSeparator*,VolumeHandle*);
diff --git a/GeoModelVisualization/VP1GeometrySystems/src/VP1GeometrySystem.cxx b/GeoModelVisualization/VP1GeometrySystems/src/VP1GeometrySystem.cxx
index 3e97ae23600afe0426ec99427236e4f6ce62a528..b2f9743612998cef83f41ed466c780533489b208 100644
--- a/GeoModelVisualization/VP1GeometrySystems/src/VP1GeometrySystem.cxx
+++ b/GeoModelVisualization/VP1GeometrySystems/src/VP1GeometrySystem.cxx
@@ -65,7 +65,7 @@
 #include "GeoModelKernel/GeoPrintGraphAction.h"
 #include "GeoModelKernel/GeoMaterial.h"
 #include "GeoModelKernel/GeoElement.h"
-#include "GeoModelKernel/GeoPVLink.h"
+#include "GeoModelKernel/GeoVPhysVol.h"
 #include "GeoModelKernel/GeoBox.h"
 #include "GeoModelKernel/GeoCountVolAction.h"
 #include "GeoModelKernel/GeoAccessVolumeAction.h"
@@ -125,7 +125,7 @@ public:
   SoSeparator * sceneroot;
 
   std::map<SoSeparator*,VolumeHandle*> sonodesep2volhandle;
-  //Might be needed later:  std::map<GeoPVConstLink,VolumeHandle*> pv2volhandle;
+  //Might be needed later:  std::map<PVConstLink,VolumeHandle*> pv2volhandle;
 
   GeoPhysVol* getGeometry();
   GeoPhysVol* createTheWorld(GeoPhysVol* world = nullptr);
diff --git a/GeoModelVisualization/VP1GeometrySystems/src/VolumeHandle.cxx b/GeoModelVisualization/VP1GeometrySystems/src/VolumeHandle.cxx
index d40b20423f1811b54863f60bdcc89b6f6a995183..804eede1d8bfb26f859b79a8b0f86ad50a5b51f0 100644
--- a/GeoModelVisualization/VP1GeometrySystems/src/VolumeHandle.cxx
+++ b/GeoModelVisualization/VP1GeometrySystems/src/VolumeHandle.cxx
@@ -43,11 +43,11 @@
 //____________________________________________________________________
 class VolumeHandle::Imp {
 public:
-  Imp(VolumeHandleSharedData * the_cd, const GeoPVConstLink& the_pV, const SbMatrix& the_ac)
+  Imp(VolumeHandleSharedData * the_cd, const PVConstLink& the_pV, const SbMatrix& the_ac)
     : commondata(the_cd), pV(the_pV),accumTrans(the_ac),attachsepHelper(0),attachlabelSepHelper(0),nodesep(0), material(0), label_sep(0), labels(0), isattached(false) {}
 
   VolumeHandleSharedData * commondata;
-  GeoPVConstLink pV;
+  PVConstLink pV;
   const SbMatrix accumTrans;//FIXME: Use pointer - and free once children are created AND nodesep has been build. Or just construct on the fly!
 
   VP1ExtraSepLayerHelper * attachsepHelper;
@@ -90,7 +90,7 @@ QDataStream & operator>> ( QDataStream & in, VolumeHandle::Imp::VolState & vs )
 }
 
 //____________________________________________________________________
-VolumeHandle::VolumeHandle(VolumeHandleSharedData * cd,VolumeHandle * parent, const GeoPVConstLink& pV, int childNumber, const SbMatrix& accumTrans)
+VolumeHandle::VolumeHandle(VolumeHandleSharedData * cd,VolumeHandle * parent, const PVConstLink& pV, int childNumber, const SbMatrix& accumTrans)
   : m_d(new Imp(cd,pV,accumTrans)), m_childNumber(childNumber), m_nchildren(childNumber>=0?pV->getNChildVols():0), m_parent(parent),
     m_state(VP1GeoFlags::CONTRACTED)
 {
@@ -156,7 +156,7 @@ void VolumeHandle::initialiseChildren()
 }
 
 //____________________________________________________________________
-GeoPVConstLink VolumeHandle::geoPVConstLink() const
+PVConstLink VolumeHandle::geoPVConstLink() const
 {
   return m_d->pV;
 }
@@ -507,7 +507,7 @@ void VolumeHandle::detachAllContractedChildren() {
 //____________________________________________________________________
 int VolumeHandle::copyNumber() const
 {
-  GeoPVConstLink parent_pV;
+  PVConstLink parent_pV;
   if (m_parent) {
     parent_pV = m_parent->geoPVConstLink();
   } else {
diff --git a/GeoModelVisualization/VP1GeometrySystems/src/VolumeHandleSharedData.cxx b/GeoModelVisualization/VP1GeometrySystems/src/VolumeHandleSharedData.cxx
index 5752a534aa768687b7b0f273cf8e433a25092d4c..0ff86e8b5382444c4e2b2d758dacb57d0e4ac2a2 100644
--- a/GeoModelVisualization/VP1GeometrySystems/src/VolumeHandleSharedData.cxx
+++ b/GeoModelVisualization/VP1GeometrySystems/src/VolumeHandleSharedData.cxx
@@ -28,7 +28,7 @@ public:
   std::map<double, SoNode *> id2shape;
   SoVisualizeAction visaction;
   std::map<SoSeparator*,VolumeHandle*>* sonodesep2volhandle;
-  GeoPVConstLink motherpV;
+  PVConstLink motherpV;
   PhiSectorManager* phisectormanager;
   VP1GeoFlags::SubSystemFlag subsysflag;
   SoMaterial * topMaterial;
@@ -42,7 +42,7 @@ public:
 VolumeHandleSharedData::VolumeHandleSharedData(GeoSysController * controller,
 					       VP1GeoFlags::SubSystemFlag flag,
                  std::map<SoSeparator*,VolumeHandle*>* sonodesep2volhandle,
-					       const GeoPVConstLink& motherpV, PhiSectorManager*psm,
+					       const PVConstLink& motherpV, PhiSectorManager*psm,
                  SoMaterial * topMaterial,
 					       MatVisAttributes *matVisAttributes,VolVisAttributes *volVisAttributes,
 					       ZappedVolumeListModel * zappedvolumelistmodel, VP1GeoTreeView * volbrowser, SoSeparator* textSep )
@@ -159,7 +159,7 @@ void VolumeHandleSharedData::setShowVolumeOutlines(SoGroup*nodegroup,bool showvo
   }
 }
 //_____________________________________________________________________________________
-SoNode * VolumeHandleSharedData::toShapeNode(const GeoPVConstLink& pV, bool * shapeIsKnown)
+SoNode * VolumeHandleSharedData::toShapeNode(const PVConstLink& pV, bool * shapeIsKnown)
 {
   const GeoLogVol * logVolume = pV->getLogVol();
   
@@ -182,7 +182,7 @@ SoNode * VolumeHandleSharedData::toShapeNode(const GeoPVConstLink& pV, bool * sh
   }
   shape = m_d->visaction.getShape();
   if (!shape) {
-    GeoPVConstLink parent=pV->getParent();
+    PVConstLink parent=pV->getParent();
     parent->getLogVol()->getShape()->exec(&(m_d->visaction));
     shape = m_d->visaction.getShape();
     if (shapeIsKnown) *shapeIsKnown=false;
@@ -219,7 +219,7 @@ SoNode * VolumeHandleSharedData::getSoCylinderOrientedLikeGeoTube(const double&
 }
 
 //____________________________________________________________________
-GeoPVConstLink VolumeHandleSharedData::geoPVConstLinkOfTreeTopsMother() const
+PVConstLink VolumeHandleSharedData::geoPVConstLinkOfTreeTopsMother() const
 {
   return m_d->motherpV;
 }
diff --git a/GeoModelVisualization/VP1GeometrySystems/src/VolumeTreeModel.cxx b/GeoModelVisualization/VP1GeometrySystems/src/VolumeTreeModel.cxx
index 64a6f3e10b36e0241eae099518b6b388ddff6454..4da1b981b50409805d4da5edf5c05cf388d13c27 100644
--- a/GeoModelVisualization/VP1GeometrySystems/src/VolumeTreeModel.cxx
+++ b/GeoModelVisualization/VP1GeometrySystems/src/VolumeTreeModel.cxx
@@ -39,7 +39,7 @@ public:
   class SubSystem: public VolumeHandle {
   public:
     SubSystem(SectionInfo *si,VP1GeoFlags::SubSystemFlag sf)
-      : VolumeHandle(0,0, GeoPVConstLink(), -1),
+      : VolumeHandle(0,0, PVConstLink(), -1),
 	section(si), subsysflag(sf) {}
     ~SubSystem() {
       VolumeHandle::VolumeHandleListItr volItr, volItrE(volhandlelist.end());
@@ -60,7 +60,7 @@ public:
   //Class for the dynamic information about sections and their daughter subsystems:
   class SectionInfo: public VolumeHandle {
   public:
-    SectionInfo(): VolumeHandle(0,0, GeoPVConstLink(), -2) {}
+    SectionInfo(): VolumeHandle(0,0, PVConstLink(), -2) {}
     //
     QList<SubSystem*> enabledSubSystems;
     QList<SubSystem*> disabledSubSystems;