Index: src/Parser/ChangeTracker.cpp
===================================================================
--- src/Parser/ChangeTracker.cpp	(revision 8f4df1ef77448922e1b977a3e138bcc2a4a4dad0)
+++ src/Parser/ChangeTracker.cpp	(revision e212ff44099f167003b8536a5d60337d9b9100be)
@@ -16,7 +16,7 @@
  */
 ChangeTracker::ChangeTracker() :
-  Observable("ChangeTracker")
+  Observable("ChangeTracker"),
+  isConsistent(true)
 {
-  isConsistent = true;
   World::getInstance().signOn(this);
 }
Index: src/Parser/FormatParser.cpp
===================================================================
--- src/Parser/FormatParser.cpp	(revision 8f4df1ef77448922e1b977a3e138bcc2a4a4dad0)
+++ src/Parser/FormatParser.cpp	(revision e212ff44099f167003b8536a5d60337d9b9100be)
@@ -17,8 +17,8 @@
  */
 FormatParser::FormatParser() :
-  Observer("FormatParser")
+  Observer("FormatParser"),
+  saveStream(NULL)
 {
   ChangeTracker::getInstance().signOn(this);
-  saveStream = NULL;
 }
 
Index: src/Parser/MpqcParser.cpp
===================================================================
--- src/Parser/MpqcParser.cpp	(revision 8f4df1ef77448922e1b977a3e138bcc2a4a4dad0)
+++ src/Parser/MpqcParser.cpp	(revision e212ff44099f167003b8536a5d60337d9b9100be)
@@ -22,14 +22,11 @@
  */
 MpqcParser::MpqcParser() : HessianPresent(false)
-{
-
-}
+{}
 
 /** Destructor of MpqcParser.
  *
  */
-MpqcParser::~MpqcParser() {
-
-}
+MpqcParser::~MpqcParser()
+{}
 
 /** Load an MPQC config file into the World.
Index: src/Parser/PcpParser.cpp
===================================================================
--- src/Parser/PcpParser.cpp	(revision 8f4df1ef77448922e1b977a3e138bcc2a4a4dad0)
+++ src/Parser/PcpParser.cpp	(revision e212ff44099f167003b8536a5d60337d9b9100be)
@@ -24,74 +24,102 @@
 #include "Box.hpp"
 
+
+PcpParser::StructParallelization::StructParallelization() :
+  ProcPEGamma(8),
+  ProcPEPsi(1)
+{}
+
+PcpParser::StructParallelization::~StructParallelization()
+{}
+
+PcpParser::StructPaths::StructPaths() :
+  databasepath(NULL),
+  configname(NULL),
+  mainname(NULL),
+  defaultpath(NULL),
+  pseudopotpath(NULL)
+{}
+
+PcpParser::StructPaths::~StructPaths()
+{}
+
+PcpParser::StructSwitches::StructSwitches() :
+  DoConstrainedMD(0),
+  DoOutVis(0),
+  DoOutMes(1),
+  DoOutNICS(0),
+  DoOutOrbitals(0),
+  DoOutCurrent(0),
+  DoFullCurrent(0),
+  DoPerturbation(0),
+  DoWannier(0)
+{}
+
+PcpParser::StructSwitches::~StructSwitches()
+{}
+
+PcpParser::StructLocalizedOrbitals::StructLocalizedOrbitals() :
+  CommonWannier(0),
+  SawtoothStart(0.01),
+  VectorPlane(0),
+  VectorCut(0),
+  UseAddGramSch(1),
+  Seed(1),
+  EpsWannier(1e-7)
+{}
+
+PcpParser::StructLocalizedOrbitals::~StructLocalizedOrbitals()
+{}
+
+PcpParser::StructStepCounts::StructStepCounts() :
+  MaxMinStopStep(1),
+  InitMaxMinStopStep(1),
+  OutVisStep(10),
+  OutSrcStep(5),
+  MaxPsiStep(0),
+  MaxOuterStep(0),
+  MaxMinStep(100),
+  RelEpsTotalEnergy(1e-07),
+  RelEpsKineticEnergy(1e-05),
+  MaxMinGapStopStep(0),
+  MaxInitMinStep(100),
+  InitRelEpsTotalEnergy(1e-05),
+  InitRelEpsKineticEnergy(0.0001),
+  InitMaxMinGapStopStep(0)
+{}
+
+PcpParser::StructStepCounts::~StructStepCounts()
+{}
+
+PcpParser::StructPlaneWaveSpecifics::StructPlaneWaveSpecifics() :
+  PsiType(0),
+  MaxPsiDouble(0),
+  PsiMaxNoUp(0),
+  PsiMaxNoDown(0),
+  ECut(128),
+  MaxLevel(5),
+  RiemannTensor(0),
+  LevRFactor(0),
+  RiemannLevel(0),
+  Lev0Factor(2),
+  RTActualUse(0),
+  AddPsis(0),
+  RCut(20)
+{}
+
+PcpParser::StructPlaneWaveSpecifics::~StructPlaneWaveSpecifics()
+{}
+
 /** Constructor of PcpParser.
  *
  */
-PcpParser::PcpParser()
-{
-  Parallelization.ProcPEGamma = 8;
-  Parallelization.ProcPEPsi = 1;
-
-  Paths.databasepath = NULL;
-  Paths.configname = NULL;
-  Paths.mainname = NULL;
-  Paths.defaultpath = NULL;
-  Paths.pseudopotpath = NULL;
-
-  Switches.DoConstrainedMD = 0;
-  Switches.DoOutVis = 0;
-  Switches.DoOutMes = 1;
-  Switches.DoOutNICS = 0;
-  Switches.DoOutOrbitals = 0;
-  Switches.DoOutCurrent = 0;
-  Switches.DoFullCurrent = 0;
-  Switches.DoPerturbation = 0;
-  Switches.DoWannier = 0;
-
-  LocalizedOrbitals.CommonWannier = 0;
-  LocalizedOrbitals.SawtoothStart = 0.01;
-  LocalizedOrbitals.VectorPlane = 0;
-  LocalizedOrbitals.VectorCut = 0;
-  LocalizedOrbitals.UseAddGramSch = 1;
-  LocalizedOrbitals.Seed = 1;
-  LocalizedOrbitals.EpsWannier = 1e-7;
-
-  StepCounts.MaxMinStopStep = 1;
-  StepCounts.InitMaxMinStopStep = 1;
-  StepCounts.OutVisStep = 10;
-  StepCounts.OutSrcStep = 5;
-  StepCounts.MaxPsiStep = 0;
-  StepCounts.MaxOuterStep = 0;
-  StepCounts.MaxMinStep = 100;
-  StepCounts.RelEpsTotalEnergy = 1e-07;
-  StepCounts.RelEpsKineticEnergy = 1e-05;
-  StepCounts.MaxMinGapStopStep = 0;
-  StepCounts.MaxInitMinStep = 100;
-  StepCounts.InitRelEpsTotalEnergy = 1e-05;
-  StepCounts.InitRelEpsKineticEnergy = 0.0001;
-  StepCounts.InitMaxMinGapStopStep = 0;
-
-  PlaneWaveSpecifics.PsiType = 0;
-  PlaneWaveSpecifics.MaxPsiDouble = 0;
-  PlaneWaveSpecifics.PsiMaxNoUp = 0;
-  PlaneWaveSpecifics.PsiMaxNoDown = 0;
-  PlaneWaveSpecifics.ECut = 128;
-  PlaneWaveSpecifics.MaxLevel = 5;
-  PlaneWaveSpecifics.RiemannTensor = 0;
-  PlaneWaveSpecifics.LevRFactor = 0;
-  PlaneWaveSpecifics.RiemannLevel = 0;
-  PlaneWaveSpecifics.Lev0Factor = 2;
-  PlaneWaveSpecifics.RTActualUse = 0;
-  PlaneWaveSpecifics.AddPsis = 0;
-  PlaneWaveSpecifics.RCut = 20;
-  PlaneWaveSpecifics.PsiType = 0;
-
-  FastParsing = false;
-
-  Deltat = 0.01;
-  IsAngstroem = 1;
-  RelativeCoord = 0;
-  StructOpt = 0;
-  MaxTypes = 0;
-}
+PcpParser::PcpParser() :
+  FastParsing(false),
+  Deltat(0.01),
+  IsAngstroem(1),
+  RelativeCoord(0),
+  StructOpt(0),
+  MaxTypes(0)
+{}
 
 /** Destructor of PcpParser.
Index: src/Parser/PcpParser.hpp
===================================================================
--- src/Parser/PcpParser.hpp	(revision 8f4df1ef77448922e1b977a3e138bcc2a4a4dad0)
+++ src/Parser/PcpParser.hpp	(revision e212ff44099f167003b8536a5d60337d9b9100be)
@@ -31,5 +31,9 @@
   void CalculateOrbitals(vector<atom *> &allatoms);
 
-  struct StructParallelization {
+  class StructParallelization {
+  public:
+    StructParallelization();
+    ~StructParallelization();
+
     int ProcPEGamma;
     int ProcPEPsi;
@@ -39,5 +43,9 @@
    * Contains all the paths and names
    */
-  struct StructPaths {
+  class StructPaths {
+  public:
+    StructPaths();
+    ~StructPaths();
+
     char *databasepath;
     char *configname;
@@ -50,5 +58,9 @@
    * Contains all Do/Don't switches
    */
-  struct StructSwitches {
+  class StructSwitches {
+  public:
+    StructSwitches();
+    ~StructSwitches();
+
     int DoConstrainedMD;
     int DoOutVis;
@@ -65,5 +77,9 @@
    * Contains parameters regarding localization of orbitals or magnetic perturbation
    */
-  struct StructLocalizedOrbitals {
+  class StructLocalizedOrbitals {
+  public:
+    StructLocalizedOrbitals();
+    ~StructLocalizedOrbitals();
+
     int CommonWannier;
     double SawtoothStart;
@@ -78,5 +94,9 @@
    * Contains all step count and other epsilon threshold parameters
    */
-  struct StructStepCounts {
+  class StructStepCounts {
+  public:
+    StructStepCounts();
+    ~StructStepCounts();
+
     int MaxMinStopStep;
     int InitMaxMinStopStep;
@@ -101,5 +121,9 @@
    * Contains all parameters specific to the plane wave basis set
    */
-  struct StructPlaneWaveSpecifics {
+  class StructPlaneWaveSpecifics {
+  public:
+    StructPlaneWaveSpecifics();
+    ~StructPlaneWaveSpecifics();
+
     int PsiType;
     int MaxPsiDouble;
Index: src/Parser/TremoloParser.cpp
===================================================================
--- src/Parser/TremoloParser.cpp	(revision 8f4df1ef77448922e1b977a3e138bcc2a4a4dad0)
+++ src/Parser/TremoloParser.cpp	(revision e212ff44099f167003b8536a5d60337d9b9100be)
@@ -390,23 +390,23 @@
 
 
-TremoloAtomInfoContainer::TremoloAtomInfoContainer() {
-  F = "0";
-  stress = "0";
-  imprData = "-";
-  GroupMeasureTypeNo = "0";
-  extType = "-";
-  name = "-";
-  resName = "-";
-  chainID = "0";
-  resSeq = "0";
-  occupancy = "0";
-  tempFactor = "0";
-  segID = "0";
-  Charge = "0";
-  charge = "0";
-  GrpTypeNo = "0";
-  torsion = "-";
-  neighbors = vector<int>(0, 5);
-}
+TremoloAtomInfoContainer::TremoloAtomInfoContainer() :
+  F("0"),
+  stress("0"),
+  imprData("-"),
+  GroupMeasureTypeNo("0"),
+  extType("-"),
+  name("-"),
+  resName("-"),
+  chainID("0"),
+  resSeq("0"),
+  occupancy("0"),
+  tempFactor("0"),
+  segID("0"),
+  Charge("0"),
+  charge("0"),
+  GrpTypeNo("0"),
+  torsion("-"),
+  neighbors(vector<int>(0, 5))
+{}
 
 void TremoloAtomInfoContainer::set(TremoloKey::atomDataKey key, string value) {
Index: src/Parser/XyzParser.cpp
===================================================================
--- src/Parser/XyzParser.cpp	(revision 8f4df1ef77448922e1b977a3e138bcc2a4a4dad0)
+++ src/Parser/XyzParser.cpp	(revision e212ff44099f167003b8536a5d60337d9b9100be)
@@ -22,7 +22,7 @@
  * Constructor.
  */
-XyzParser::XyzParser() {
-  comment = "";
-}
+XyzParser::XyzParser() :
+  comment("")
+{}
 
 /**
