Index: src/FunctionApproximation/Extractors.cpp
===================================================================
--- src/FunctionApproximation/Extractors.cpp	(revision c7aac9f7c2a3277e76e6143c01a85a5b18caa1cb)
+++ src/FunctionApproximation/Extractors.cpp	(revision c5e75f3270a380f8e6976913af3591de13b69f61)
@@ -96,9 +96,9 @@
 Extractors::elementcounts_t 
 Extractors::_detail::getElementCounts(
-    const Fragment::charges_t elements
+    const Fragment::atomicnumbers_t elements
   )
 {
   elementcounts_t elementcounts;
-  for (Fragment::charges_t::const_iterator elementiter = elements.begin();
+  for (Fragment::atomicnumbers_t::const_iterator elementiter = elements.begin();
       elementiter != elements.end(); ++elementiter) {
     // insert new element
Index: src/FunctionApproximation/Extractors.hpp
===================================================================
--- src/FunctionApproximation/Extractors.hpp	(revision c7aac9f7c2a3277e76e6143c01a85a5b18caa1cb)
+++ src/FunctionApproximation/Extractors.hpp	(revision c5e75f3270a380f8e6976913af3591de13b69f61)
@@ -39,10 +39,10 @@
 
   typedef size_t count_t;
-  typedef Fragment::charge_t element_t;
+  typedef Fragment::atomicNumber_t element_t;
   typedef std::map< element_t, count_t> elementcounts_t;
   typedef std::map< element_t, chargeiters_t > elementtargets_t;
   typedef std::vector< chargeiters_t > targets_per_combination_t;
   //!> typedef for particle designation
-  typedef int ParticleType_t;
+  typedef unsigned int ParticleType_t;
   //!> typedef for a vector of particle designations
   typedef std::vector<ParticleType_t> ParticleTypes_t;
@@ -59,5 +59,5 @@
      */
     elementcounts_t getElementCounts(
-        const Fragment::charges_t elements
+        const Fragment::atomicnumbers_t elements
         );
 
Index: src/FunctionApproximation/FunctionArgument.hpp
===================================================================
--- src/FunctionApproximation/FunctionArgument.hpp	(revision c7aac9f7c2a3277e76e6143c01a85a5b18caa1cb)
+++ src/FunctionApproximation/FunctionArgument.hpp	(revision c5e75f3270a380f8e6976913af3591de13b69f61)
@@ -33,5 +33,5 @@
   typedef std::pair<size_t, size_t> indices_t;
   //!> typedef for the underlying type of the particle
-  typedef int ParticleType_t;
+  typedef unsigned int ParticleType_t;
   //!> typedef for the two particle types of the argument
   typedef std::pair<ParticleType_t, ParticleType_t> types_t;
Index: src/Potentials/CompoundPotential.cpp
===================================================================
--- src/Potentials/CompoundPotential.cpp	(revision c7aac9f7c2a3277e76e6143c01a85a5b18caa1cb)
+++ src/Potentials/CompoundPotential.cpp	(revision c5e75f3270a380f8e6976913af3591de13b69f61)
@@ -70,19 +70,14 @@
         potential->getParticleTypes();
 
-    // create charges
-    Fragment::charges_t charges;
-    charges.resize(types.size());
-    std::transform(types.begin(), types.end(),
-        charges.begin(), boost::lambda::_1);
     // convert into count map
-    Extractors::elementcounts_t counts_per_charge =
-        Extractors::_detail::getElementCounts(charges);
-//    ASSERT( !counts_per_charge.empty(),
-//        "getFirstGraphwithSpecifiedElements() - charge counts are empty?");
-    LOG(2, "DEBUG: counts_per_charge is " << counts_per_charge << ".");
+    Extractors::elementcounts_t counts_per_element =
+        Extractors::_detail::getElementCounts(types);
+//    ASSERT( !counts_per_element.empty(),
+//        "getFirstGraphwithSpecifiedElements() - element counts are empty?");
+    LOG(2, "DEBUG: counts_per_element is " << counts_per_element << ".");
 
     // check whether graph contains suitable types
-    Extractors::elementcounts_t::const_iterator countiter = counts_per_charge.begin();
-    for (; countiter != counts_per_charge.end(); ++countiter)
+    Extractors::elementcounts_t::const_iterator countiter = counts_per_element.begin();
+    for (; countiter != counts_per_element.end(); ++countiter)
       if (!graph.hasGreaterEqualTimesAtomicNumber(
           static_cast<size_t>(countiter->first),
@@ -91,5 +86,5 @@
         break;
     // if we have a match for every count, store model
-    if( countiter == counts_per_charge.end()) {
+    if( countiter == counts_per_element.end()) {
       LOG(1, "INFO: Potential " << potentialiter->first << " matches with fragment.");
       models.push_back(static_cast<FunctionModel*>(potential));
Index: src/Potentials/PotentialTrainer.cpp
===================================================================
--- src/Potentials/PotentialTrainer.cpp	(revision c7aac9f7c2a3277e76e6143c01a85a5b18caa1cb)
+++ src/Potentials/PotentialTrainer.cpp	(revision c5e75f3270a380f8e6976913af3591de13b69f61)
@@ -193,15 +193,11 @@
   ASSERT( !types.empty(),
       "getFirstGraphwithSpecifiedElements() - charges is empty?");
-  // create charges
-  Fragment::charges_t charges;
-  charges.resize(types.size());
-  std::transform(types.begin(), types.end(),
-      charges.begin(), boost::lambda::_1);
+
   // convert into count map
-  Extractors::elementcounts_t counts_per_charge =
-      Extractors::_detail::getElementCounts(charges);
-  ASSERT( !counts_per_charge.empty(),
-      "getFirstGraphwithSpecifiedElements() - charge counts are empty?");
-  LOG(1, "DEBUG: counts_per_charge is " << counts_per_charge << ".");
+  Extractors::elementcounts_t counts_per_element =
+      Extractors::_detail::getElementCounts(types);
+  ASSERT( !counts_per_element.empty(),
+      "getFirstGraphwithSpecifiedElements() - element counts are empty?");
+  LOG(1, "DEBUG: counts_per_element is " << counts_per_element << ".");
   // we want to check each (unique) key only once
   HomologyContainer::const_key_iterator olditer = homologies.key_end();
@@ -216,15 +212,15 @@
     // check whether we have the same set of atomic numbers
     const HomologyGraph::nodes_t &nodes = (*iter).getNodes();
-    Extractors::elementcounts_t nodes_counts_per_charge;
+    Extractors::elementcounts_t nodes_counts_per_element;
     for (HomologyGraph::nodes_t::const_iterator nodeiter = nodes.begin();
         nodeiter != nodes.end(); ++nodeiter) {
       const Extractors::element_t elem = nodeiter->first.getAtomicNumber();
       const std::pair<Extractors::elementcounts_t::iterator, bool> inserter =
-          nodes_counts_per_charge.insert( std::make_pair(elem, (Extractors::count_t)nodeiter->second ) );
+          nodes_counts_per_element.insert( std::make_pair(elem, (Extractors::count_t)nodeiter->second ) );
       if (!inserter.second)
         inserter.first->second += (Extractors::count_t)nodeiter->second;
     }
-    LOG(1, "DEBUG: Node (" << *iter << ")'s counts_per_charge is " << nodes_counts_per_charge << ".");
-    if (counts_per_charge == nodes_counts_per_charge)
+    LOG(1, "DEBUG: Node (" << *iter << ")'s counts_per_element is " << nodes_counts_per_element << ".");
+    if (counts_per_element == nodes_counts_per_element)
       return *iter;
   }
Index: src/Potentials/SerializablePotential.hpp
===================================================================
--- src/Potentials/SerializablePotential.hpp	(revision c7aac9f7c2a3277e76e6143c01a85a5b18caa1cb)
+++ src/Potentials/SerializablePotential.hpp	(revision c5e75f3270a380f8e6976913af3591de13b69f61)
@@ -39,5 +39,5 @@
 public:
   //!> typedef for particle designation
-  typedef int ParticleType_t;
+  typedef unsigned int ParticleType_t;
   //!> typedef for a vector of particle designations
   typedef std::vector<ParticleType_t> ParticleTypes_t;
Index: src/documentation/constructs/potentials.dox
===================================================================
--- src/documentation/constructs/potentials.dox	(revision c7aac9f7c2a3277e76e6143c01a85a5b18caa1cb)
+++ src/documentation/constructs/potentials.dox	(revision c5e75f3270a380f8e6976913af3591de13b69f61)
@@ -158,5 +158,5 @@
  *  HomologyContainer homologies;
  *  const HomologyGraph graph = getSomeGraph(homologies);
- *  Fragment::charges_t h2o;
+ *  Fragment::atomicnumbers_t h2o;
  *  h2o += 8,1,1;
  *  // TrainingData needs so called Extractors to get the required distances
@@ -165,5 +165,5 @@
  *      boost::bind(&Extractors::gatherDistancesFromFragment,
  *          boost::bind(&Fragment::getPositions, _1),
- *          boost::bind(&Fragment::getCharges, _1),
+ *          boost::bind(&Fragment::getAtomicNumbers, _1),
  *          boost::cref(h2o),
  *          _2)
