Index: src/Parameters/Makefile.am
===================================================================
--- src/Parameters/Makefile.am	(revision b11f5e894a1e470524372e3a267d6162ee110847)
+++ src/Parameters/Makefile.am	(revision 6440c6215032e9cb753701bc186867d2e638c0de)
@@ -31,5 +31,4 @@
 	Parameters/Parameter.hpp \
 	Parameters/Parameter_impl.hpp \
-	Parameters/ParameterAsString.hpp \
 	Parameters/ParameterInterface.hpp \
 	Parameters/Validators/DiscreteValidator.hpp \
Index: src/Parameters/Parameter.hpp
===================================================================
--- src/Parameters/Parameter.hpp	(revision b11f5e894a1e470524372e3a267d6162ee110847)
+++ src/Parameters/Parameter.hpp	(revision 6440c6215032e9cb753701bc186867d2e638c0de)
@@ -28,5 +28,7 @@
  */
 template <typename T>
-class Parameter : public ParameterInterface<T>, public Value<T>
+class Parameter :
+  virtual public ParameterInterface,
+  virtual public Value<T>
 {
 public:
@@ -53,5 +55,5 @@
       { return !((*this)==(_instance)); }
 
-  ParameterAsString* clone() const;
+  ParameterInterface* clone() const;
 
 //private: // TODO...
Index: c/Parameters/ParameterAsString.hpp
===================================================================
--- src/Parameters/ParameterAsString.hpp	(revision b11f5e894a1e470524372e3a267d6162ee110847)
+++ 	(revision )
@@ -1,36 +1,0 @@
-/*
- * ParameterAsString.hpp
- *
- *  Created on: Apr 18, 2012
- *      Author: ankele
- */
-
-#ifndef PARAMETERASSTRING_HPP_
-#define PARAMETERASSTRING_HPP_
-
-
-// include config.h
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <string>
-
-#include "CodePatterns/Clone.hpp"
-
-#include "ValueAsString.hpp"
-
-/** This class encapsulates a clonable, continuous value.
- *
- */
-class ParameterAsString : virtual public ValueAsString, public Clone<ParameterAsString>
-{
-public:
-  virtual ~ParameterAsString(){};
-
-  virtual const std::string &getName() const=0;
-
-  virtual ParameterAsString* clone() const=0;
-};
-
-#endif /* PARAMETERASSTRING_HPP_ */
Index: src/Parameters/ParameterInterface.hpp
===================================================================
--- src/Parameters/ParameterInterface.hpp	(revision b11f5e894a1e470524372e3a267d6162ee110847)
+++ src/Parameters/ParameterInterface.hpp	(revision 6440c6215032e9cb753701bc186867d2e638c0de)
@@ -16,13 +16,14 @@
 #include <string>
 
-#include "Parameters/ValueInterface.hpp"
-#include "Parameters/ParameterAsString.hpp"
+#include "CodePatterns/Clone.hpp"
 
+#include "Parameters/ValueAsString.hpp"
 
-/** This interface represents a clonable, named Value.
+/** This interface represents a named Value.
  *
  */
-template <class T>
-class ParameterInterface : virtual public ParameterAsString, virtual public ValueInterface<T>
+class ParameterInterface :
+  virtual public ValueAsString,
+  public Clone<ParameterInterface>
 {
 public:
@@ -31,4 +32,6 @@
 
   const std::string &getName() const { return name; }
+
+  virtual ParameterInterface* clone() const=0;
 
 private:
Index: src/Parameters/Parameter_impl.hpp
===================================================================
--- src/Parameters/Parameter_impl.hpp	(revision b11f5e894a1e470524372e3a267d6162ee110847)
+++ src/Parameters/Parameter_impl.hpp	(revision 6440c6215032e9cb753701bc186867d2e638c0de)
@@ -20,5 +20,5 @@
 template<typename T>
 Parameter<T>::Parameter(const Parameter<T> &instance) :
-  ParameterInterface<T>(instance.getName()),
+  ParameterInterface(instance.getName()),
   Value<T>(instance.getValidator())
 {
@@ -31,5 +31,5 @@
 template<typename T>
 Parameter<T>::Parameter() :
-  ParameterInterface<T>("__no_name__"),
+  ParameterInterface("__no_name__"),
   Value<T>()
 {};
@@ -40,5 +40,5 @@
 template<typename T>
 Parameter<T>::Parameter(const std::string &_name) :
-  ParameterInterface<T>(_name),
+  ParameterInterface(_name),
   Value<T>()
 {};
@@ -51,5 +51,5 @@
 template<typename T>
 Parameter<T>::Parameter(const std::string &_name, const T &_value) :
-  ParameterInterface<T>(_name),
+  ParameterInterface(_name),
   Value<T>()
 {
@@ -64,5 +64,5 @@
 template<typename T>
 Parameter<T>::Parameter(const std::string &_name, const Validator<T> &_Validator) :
-  ParameterInterface<T>(_name),
+  ParameterInterface(_name),
   Value<T>(_Validator)
 {};
@@ -76,5 +76,5 @@
 template<typename T>
 Parameter<T>::Parameter(const std::string &_name, const Validator<T> &_Validator, const T &_value) :
-  ParameterInterface<T>(_name),
+  ParameterInterface(_name),
   Value<T>(_Validator)
 {
@@ -89,5 +89,5 @@
 template<typename T>
 Parameter<T>::Parameter(const std::string &_name, const std::vector<T> &_ValidValues) :
-  ParameterInterface<T>(_name),
+  ParameterInterface(_name),
   Value<T>(_ValidValues)
 {};
@@ -101,5 +101,5 @@
 template<typename T>
 Parameter<T>::Parameter(const std::string &_name, const std::vector<T> &_ValidValues, const T &_value) :
-  ParameterInterface<T>(_name),
+  ParameterInterface(_name),
   Value<T>(_ValidValues)
 {
@@ -114,5 +114,5 @@
 template<typename T>
 Parameter<T>::Parameter(const std::string &_name, const range<T> &_ValidRange) :
-  ParameterInterface<T>(_name),
+  ParameterInterface(_name),
   Value<T>(_ValidRange)
 {};
@@ -126,5 +126,5 @@
 template<typename T>
 Parameter<T>::Parameter(const std::string &_name, const range<T> &_ValidRange, const T &_value) :
-  ParameterInterface<T>(_name),
+  ParameterInterface(_name),
   Value<T>(_ValidRange)
 {
@@ -149,5 +149,5 @@
     return Value<T>::getAsString();
   } catch(ParameterException &e) {
-    e << ParameterName(ParameterInterface<T>::getName());
+    e << ParameterName(ParameterInterface::getName());
     throw;
   }
@@ -164,5 +164,5 @@
     return Value<T>::get();
   } catch(ParameterException &e) {
-    e << ParameterName(ParameterInterface<T>::getName());
+    e << ParameterName(ParameterInterface::getName());
     throw;
   }
@@ -179,5 +179,5 @@
     Value<T>::set(_value);
   } catch(ParameterException &e) {
-    e << ParameterName(ParameterInterface<T>::getName());
+    e << ParameterName(ParameterInterface::getName());
     throw;
   }
@@ -194,5 +194,5 @@
     Value<T>::setAsString(_value);
   } catch(ParameterException &e) {
-    e << ParameterName(ParameterInterface<T>::getName());
+    e << ParameterName(ParameterInterface::getName());
     throw;
   }
@@ -211,7 +211,7 @@
     status = status &&
         (*dynamic_cast<const Value<T> *>(this) == dynamic_cast<const Value<T> &>(_instance));
-    status = status && (ParameterInterface<T>::getName() == _instance.ParameterInterface<T>::getName());
-  } catch(ParameterException &e) {
-    e << ParameterName(ParameterInterface<T>::getName());
+    status = status && (ParameterInterface::getName() == _instance.ParameterInterface::getName());
+  } catch(ParameterException &e) {
+    e << ParameterName(ParameterInterface::getName());
     throw;
   }
@@ -224,7 +224,7 @@
  */
 template<typename T>
-inline ParameterAsString* Parameter<T>::clone() const
-{
-  Parameter<T> *instance = new Parameter<T>(ParameterInterface<T>::getName(), Value<T>::getValidator());
+inline ParameterInterface* Parameter<T>::clone() const
+{
+  Parameter<T> *instance = new Parameter<T>(ParameterInterface::getName(), Value<T>::getValidator());
   if (Value<T>::ValueSet)
     instance->set(Value<T>::get());
Index: src/Parameters/Value.hpp
===================================================================
--- src/Parameters/Value.hpp	(revision b11f5e894a1e470524372e3a267d6162ee110847)
+++ src/Parameters/Value.hpp	(revision 6440c6215032e9cb753701bc186867d2e638c0de)
@@ -18,4 +18,5 @@
 #include <vector>
 
+#include "ValueAsString.hpp"
 #include "ValueInterface.hpp"
 #include "Validators/Validator.hpp"
@@ -57,5 +58,7 @@
  */
 template <class T>
-class Value : virtual public ValueInterface<T>
+class Value :
+  virtual public ValueAsString,
+  public ValueInterface<T>
 {
   //!> unit test needs to have access to internal values
Index: src/Parameters/ValueInterface.hpp
===================================================================
--- src/Parameters/ValueInterface.hpp	(revision b11f5e894a1e470524372e3a267d6162ee110847)
+++ src/Parameters/ValueInterface.hpp	(revision 6440c6215032e9cb753701bc186867d2e638c0de)
@@ -23,5 +23,5 @@
  */
 template <class T>
-class ValueInterface : virtual public ValueAsString
+class ValueInterface
 {
 public:
Index: src/Parameters/unittests/Makefile.am
===================================================================
--- src/Parameters/unittests/Makefile.am	(revision b11f5e894a1e470524372e3a267d6162ee110847)
+++ src/Parameters/unittests/Makefile.am	(revision 6440c6215032e9cb753701bc186867d2e638c0de)
@@ -56,5 +56,4 @@
 	../Parameters/Parameter.hpp \
 	../Parameters/Parameter_impl.hpp \
-	../Parameters/ParameterAsString.hpp \
 	../Parameters/ParameterInterface.hpp
 ContinuousParameterTest_LDADD = \
@@ -80,5 +79,4 @@
 	../Parameters/Parameter.hpp \
 	../Parameters/Parameter_impl.hpp \
-	../Parameters/ParameterAsString.hpp \
 	../Parameters/ParameterInterface.hpp \
 	../Parameters/Validators/DiscreteValidator.hpp \
Index: src/Parser/FormatParser_Parameters.cpp
===================================================================
--- src/Parser/FormatParser_Parameters.cpp	(revision b11f5e894a1e470524372e3a267d6162ee110847)
+++ src/Parser/FormatParser_Parameters.cpp	(revision 6440c6215032e9cb753701bc186867d2e638c0de)
@@ -44,5 +44,5 @@
 #include "CodePatterns/Log.hpp"
 
-#include "Parameters/ParameterAsString.hpp"
+#include "Parameters/ParameterInterface.hpp"
 #include "FormatParser_Parameters.hpp"
 
@@ -102,5 +102,5 @@
  * @param instance parameter to add
  */
-void FormatParser_Parameters::appendParameter(ParameterAsString *instance)
+void FormatParser_Parameters::appendParameter(ParameterInterface *instance)
 {
   storage->registerInstance(instance);
@@ -124,5 +124,5 @@
  * @return pointer to instance with this \a _name
  */
-ParameterAsString *FormatParser_Parameters::getParameter(const std::string &_name) const
+ParameterInterface *FormatParser_Parameters::getParameter(const std::string &_name) const
 {
   return storage->getByName(_name);
@@ -202,5 +202,5 @@
           +key+"' with value "+valuestream.str()+"!");
       if (params.haveParameter(key)) {
-        ParameterAsString *instance = params.getParameter(key);
+        ParameterInterface *instance = params.getParameter(key);
         instance->setAsString(valuestream.str());
       }
Index: src/Parser/FormatParser_Parameters.hpp
===================================================================
--- src/Parser/FormatParser_Parameters.hpp	(revision b11f5e894a1e470524372e3a267d6162ee110847)
+++ src/Parser/FormatParser_Parameters.hpp	(revision 6440c6215032e9cb753701bc186867d2e638c0de)
@@ -20,5 +20,5 @@
 #include "Parser/Parameters/ParameterStorage.hpp"
 
-class ParameterAsString;
+class ParameterInterface;
 
 /** This class is an interface to the internal parameters of any FormatParser.
@@ -41,7 +41,7 @@
 
   // accessing parameters in storage
-  void appendParameter(ParameterAsString *instance);
+  void appendParameter(ParameterInterface *instance);
   bool haveParameter(const std::string &_name) const;
-  ParameterAsString *getParameter(const std::string &_name) const;
+  ParameterInterface *getParameter(const std::string &_name) const;
 
 protected:
Index: src/Parser/Makefile.am
===================================================================
--- src/Parser/Makefile.am	(revision b11f5e894a1e470524372e3a267d6162ee110847)
+++ src/Parser/Makefile.am	(revision 6440c6215032e9cb753701bc186867d2e638c0de)
@@ -63,5 +63,4 @@
 	Parameters/Parameter.hpp \
 	Parameters/Parameter_impl.hpp \
-	Parameters/ParameterAsString.hpp \
 	Parameters/ParameterInterface.hpp \
 	Parameters/Validators/DiscreteValidator.hpp \
Index: src/Parser/Parameters/ParameterStorage.cpp
===================================================================
--- src/Parser/Parameters/ParameterStorage.cpp	(revision b11f5e894a1e470524372e3a267d6162ee110847)
+++ src/Parser/Parameters/ParameterStorage.cpp	(revision 6440c6215032e9cb753701bc186867d2e638c0de)
@@ -52,5 +52,5 @@
 {
   for (const_iterator iter = _storage.getBeginIter(); iter != _storage.getEndIter(); ++iter) {
-    ParameterAsString *instance = (iter->second)->clone();
+    ParameterInterface *instance = (iter->second)->clone();
     registerInstance(instance);
   }
@@ -64,3 +64,3 @@
 }
 
-CONSTRUCT_REGISTRY(ParameterAsString)
+CONSTRUCT_REGISTRY(ParameterInterface)
Index: src/Parser/Parameters/ParameterStorage.hpp
===================================================================
--- src/Parser/Parameters/ParameterStorage.hpp	(revision b11f5e894a1e470524372e3a267d6162ee110847)
+++ src/Parser/Parameters/ParameterStorage.hpp	(revision 6440c6215032e9cb753701bc186867d2e638c0de)
@@ -16,5 +16,5 @@
 #include "CodePatterns/Registry.hpp"
 
-#include "Parameters/ParameterAsString.hpp"
+#include "Parameters/ParameterInterface.hpp"
 
 /** Parameter Registry.
@@ -23,5 +23,5 @@
  *
  */
-class ParameterStorage : public Registry<ParameterAsString>
+class ParameterStorage : public Registry<ParameterInterface>
 {
 public:
Index: src/Parser/Parameters/unittests/ParameterStorageUnitTest.cpp
===================================================================
--- src/Parser/Parameters/unittests/ParameterStorageUnitTest.cpp	(revision b11f5e894a1e470524372e3a267d6162ee110847)
+++ src/Parser/Parameters/unittests/ParameterStorageUnitTest.cpp	(revision 6440c6215032e9cb753701bc186867d2e638c0de)
@@ -67,6 +67,6 @@
     ValidValues.push_back(i);
   range<double> ValidRange(1., 4.);
-  ParameterAsString *intParam = new Parameter<int>("intParam", ValidValues);
-  ParameterAsString *doubleParam = new Parameter<double>("doubleParam", ValidRange);
+  ParameterInterface *intParam = new Parameter<int>("intParam", ValidValues);
+  ParameterInterface *doubleParam = new Parameter<double>("doubleParam", ValidRange);
   // note: delete is done by registry in tearDown ...
 
