diff --git a/FunctionSpace/BasisHierarchicalScalar.cpp b/FunctionSpace/BasisHierarchical0From.cpp
similarity index 88%
rename from FunctionSpace/BasisHierarchicalScalar.cpp
rename to FunctionSpace/BasisHierarchical0From.cpp
index 5acf26b9a8f48f5b04e158638c7ee85dad554c1b..c6290335c3e95d65a8354aec4e29f0354221a903 100644
--- a/FunctionSpace/BasisHierarchicalScalar.cpp
+++ b/FunctionSpace/BasisHierarchical0From.cpp
@@ -1,10 +1,10 @@
 #include <sstream>
 #include "Exception.h"
-#include "BasisHierarchicalScalar.h"
+#include "BasisHierarchical0From.h"
 
 using namespace std;
 
-BasisHierarchicalScalar::BasisHierarchicalScalar(void){
+BasisHierarchical0From::BasisHierarchical0From(void){
   // Scalar Basis ? //
   scalar = true;
 
@@ -20,7 +20,7 @@ BasisHierarchicalScalar::BasisHierarchicalScalar(void){
   preEvaluatedGradFunction = NULL;
 }
 
-BasisHierarchicalScalar::~BasisHierarchicalScalar(void){
+BasisHierarchical0From::~BasisHierarchical0From(void){
   // Grad Basis //
   if(hasGrad){
     for(unsigned int i = 0; i < nRefSpace; i++){
@@ -49,17 +49,17 @@ BasisHierarchicalScalar::~BasisHierarchicalScalar(void){
   }
 }
 
-unsigned int BasisHierarchicalScalar::
+unsigned int BasisHierarchical0From::
 getNOrientation(void) const{
   return refSpace->getNPermutation();
 }
 
-unsigned int BasisHierarchicalScalar::
+unsigned int BasisHierarchical0From::
 getOrientation(const MElement& element) const{
   return refSpace->getPermutation(element);
 }
 
-fullMatrix<double>* BasisHierarchicalScalar::
+fullMatrix<double>* BasisHierarchical0From::
 getFunctions(const MElement& element,
 	     double u, double v, double w) const{
 
@@ -77,7 +77,7 @@ getFunctions(const MElement& element,
   return values;
 }
 
-fullMatrix<double>* BasisHierarchicalScalar::
+fullMatrix<double>* BasisHierarchical0From::
 getFunctions(unsigned int orientation,
 	     double u, double v, double w) const{
 
@@ -92,7 +92,7 @@ getFunctions(unsigned int orientation,
   return values;
 }
 
-void BasisHierarchicalScalar::
+void BasisHierarchical0From::
 preEvaluateFunctions(const fullMatrix<double>& point) const{
   // Delete if older //
   if(preEvaluated){
@@ -123,7 +123,7 @@ preEvaluateFunctions(const fullMatrix<double>& point) const{
   preEvaluated = true;
 }
 
-void BasisHierarchicalScalar::
+void BasisHierarchical0From::
 preEvaluateDerivatives(const fullMatrix<double>& point) const{
   // Build Grad //
   if(!hasGrad)
@@ -168,17 +168,17 @@ preEvaluateDerivatives(const fullMatrix<double>& point) const{
   preEvaluatedGrad = true;
 }
 
-const fullMatrix<double>& BasisHierarchicalScalar::
+const fullMatrix<double>& BasisHierarchical0From::
 getPreEvaluatedFunctions(const MElement& element) const{
   return getPreEvaluatedFunctions(refSpace->getPermutation(element));
 }
 
-const fullMatrix<double>& BasisHierarchicalScalar::
+const fullMatrix<double>& BasisHierarchical0From::
 getPreEvaluatedDerivatives(const MElement& element) const{
   return getPreEvaluatedDerivatives(refSpace->getPermutation(element));
 }
 
-const fullMatrix<double>& BasisHierarchicalScalar::
+const fullMatrix<double>& BasisHierarchical0From::
 getPreEvaluatedFunctions(unsigned int orientation) const{
   if(!preEvaluated)
     throw Exception("getPreEvaluatedFunction: function has not been preEvaluated");
@@ -186,7 +186,7 @@ getPreEvaluatedFunctions(unsigned int orientation) const{
   return *preEvaluatedFunction[orientation];
 }
 
-const fullMatrix<double>& BasisHierarchicalScalar::
+const fullMatrix<double>& BasisHierarchical0From::
 getPreEvaluatedDerivatives(unsigned int orientation) const{
   if(!preEvaluatedGrad)
     throw Exception("getPreEvaluatedDerivative: gradient has not been preEvaluated");
@@ -194,7 +194,7 @@ getPreEvaluatedDerivatives(unsigned int orientation) const{
   return *preEvaluatedGradFunction[orientation];
 }
 
-void BasisHierarchicalScalar::getGrad(void) const{
+void BasisHierarchical0From::getGrad(void) const{
   // Alloc //
   grad = new vector<Polynomial>**[nRefSpace];
 
@@ -211,7 +211,7 @@ void BasisHierarchicalScalar::getGrad(void) const{
   hasGrad = true;
 }
 
-string BasisHierarchicalScalar::toString(void) const{
+string BasisHierarchical0From::toString(void) const{
   stringstream stream;
   unsigned int i = 0;
   const unsigned int refSpace = 0;
diff --git a/FunctionSpace/BasisHierarchicalScalar.h b/FunctionSpace/BasisHierarchical0From.h
similarity index 72%
rename from FunctionSpace/BasisHierarchicalScalar.h
rename to FunctionSpace/BasisHierarchical0From.h
index 65941fb19363b4b0dadff0d80d06482dc235145b..6acc773198e2a3aa3a2f8951c305cfc64965a9cf 100644
--- a/FunctionSpace/BasisHierarchicalScalar.h
+++ b/FunctionSpace/BasisHierarchical0From.h
@@ -1,5 +1,5 @@
-#ifndef _BASISHIERARCHICALSCALAR_H_
-#define _BASISHIERARCHICALSCALAR_H_
+#ifndef _BASISHIERARCHICAL0FROM_H_
+#define _BASISHIERARCHICAL0FROM_H_
 
 #include <string>
 #include "BasisLocal.h"
@@ -7,13 +7,13 @@
 #include "ReferenceSpace.h"
 
 /**
-   @interface BasisHierarchicalScalar
-   @brief Interface for Hierarchical Scalar Local Basis
+   @interface BasisHierarchical0From
+   @brief Interface for Hierarchical 0-From Local Basis
 
-   This is an interface for Hierarchical Scalar Local Basis.@n
+   This is an interface for Hierarchical 0-From Local Basis.@n
 */
 
-class BasisHierarchicalScalar: public BasisLocal{
+class BasisHierarchical0From: public BasisLocal{
  protected:
   // Orientation //
   ReferenceSpace* refSpace;
@@ -34,7 +34,7 @@ class BasisHierarchicalScalar: public BasisLocal{
   mutable fullMatrix<double>** preEvaluatedGradFunction;
 
  public:
-  virtual ~BasisHierarchicalScalar(void);
+  virtual ~BasisHierarchical0From(void);
 
   virtual unsigned int getNOrientation(void) const;
   virtual unsigned int getOrientation(const MElement& element) const;
@@ -63,7 +63,7 @@ class BasisHierarchicalScalar: public BasisLocal{
   std::string toString(void) const;
 
  protected:
-  BasisHierarchicalScalar(void);
+  BasisHierarchical0From(void);
 
  private:
   void getGrad(void) const;
@@ -71,20 +71,20 @@ class BasisHierarchicalScalar: public BasisLocal{
 
 /**
    @internal
-   @fn BasisHierarchicalScalar::BasisHierarchicalScalar
+   @fn BasisHierarchical0From::BasisHierarchical0From
 
-   Instanciates an new BasisHierarchicalScalar
+   Instanciates an new BasisHierarchical0From
    @endinternal
    **
 
-   @fn BasisHierarchicalScalar::~BasisHierarchicalScalar
+   @fn BasisHierarchical0From::~BasisHierarchical0From
 
-   Deletes this BasisHierarchicalScalar
+   Deletes this BasisHierarchical0From
    **
 
-   @fn BasisHierarchicalScalar::toString
+   @fn BasisHierarchical0From::toString
    @return Returns a string describing this
-   BasisHierarchicalScalar
+   BasisHierarchical0From
  */
 
 #endif
diff --git a/FunctionSpace/BasisHierarchicalVector.cpp b/FunctionSpace/BasisHierarchical1From.cpp
similarity index 90%
rename from FunctionSpace/BasisHierarchicalVector.cpp
rename to FunctionSpace/BasisHierarchical1From.cpp
index de07bf0e6b091351a38c6b7f0423cbd8b735cdf4..89e303310794ed81bf48a40e14365240ad6e135c 100644
--- a/FunctionSpace/BasisHierarchicalVector.cpp
+++ b/FunctionSpace/BasisHierarchical1From.cpp
@@ -1,10 +1,10 @@
 #include <sstream>
 #include "Exception.h"
-#include "BasisHierarchicalVector.h"
+#include "BasisHierarchical1From.h"
 
 using namespace std;
 
-BasisHierarchicalVector::BasisHierarchicalVector(void){
+BasisHierarchical1From::BasisHierarchical1From(void){
   // Scalar Basis ?//
   scalar = false;
 
@@ -20,7 +20,7 @@ BasisHierarchicalVector::BasisHierarchicalVector(void){
   preEvaluatedCurlFunction = NULL;
 }
 
-BasisHierarchicalVector::~BasisHierarchicalVector(void){
+BasisHierarchical1From::~BasisHierarchical1From(void){
   // Curl Basis //
   if(hasCurl){
     for(unsigned int i = 0; i < nRefSpace; i++){
@@ -49,17 +49,17 @@ BasisHierarchicalVector::~BasisHierarchicalVector(void){
   }
 }
 
-unsigned int BasisHierarchicalVector::
+unsigned int BasisHierarchical1From::
 getNOrientation(void) const{
   return refSpace->getNPermutation();
 }
 
-unsigned int BasisHierarchicalVector::
+unsigned int BasisHierarchical1From::
 getOrientation(const MElement& element) const{
   return refSpace->getPermutation(element);
 }
 
-fullMatrix<double>* BasisHierarchicalVector::
+fullMatrix<double>* BasisHierarchical1From::
 getFunctions(const MElement& element,
 	     double u, double v, double w) const{
 
@@ -83,7 +83,7 @@ getFunctions(const MElement& element,
   return values;
 }
 
-fullMatrix<double>* BasisHierarchicalVector::
+fullMatrix<double>* BasisHierarchical1From::
 getFunctions(unsigned int orientation,
 	     double u, double v, double w) const{
 
@@ -104,7 +104,7 @@ getFunctions(unsigned int orientation,
   return values;
 }
 
-void BasisHierarchicalVector::
+void BasisHierarchical1From::
 preEvaluateFunctions(const fullMatrix<double>& point) const{
   // Delete if older //
   if(preEvaluated){
@@ -145,7 +145,7 @@ preEvaluateFunctions(const fullMatrix<double>& point) const{
   preEvaluated = true;
 }
 
-void BasisHierarchicalVector::
+void BasisHierarchical1From::
 preEvaluateDerivatives(const fullMatrix<double>& point) const{
   // Build Curl //
   if(!hasCurl)
@@ -190,17 +190,17 @@ preEvaluateDerivatives(const fullMatrix<double>& point) const{
   preEvaluatedCurl = true;
 }
 
-const fullMatrix<double>& BasisHierarchicalVector::
+const fullMatrix<double>& BasisHierarchical1From::
 getPreEvaluatedFunctions(const MElement& element) const{
   return getPreEvaluatedFunctions(refSpace->getPermutation(element));
 }
 
-const fullMatrix<double>& BasisHierarchicalVector::
+const fullMatrix<double>& BasisHierarchical1From::
 getPreEvaluatedDerivatives(const MElement& element) const{
   return getPreEvaluatedDerivatives(refSpace->getPermutation(element));
 }
 
-const fullMatrix<double>& BasisHierarchicalVector::
+const fullMatrix<double>& BasisHierarchical1From::
 getPreEvaluatedFunctions(unsigned int orientation) const{
   if(!preEvaluated)
     throw Exception("getPreEvaluatedFunction: function has not been preEvaluated");
@@ -208,7 +208,7 @@ getPreEvaluatedFunctions(unsigned int orientation) const{
   return *preEvaluatedFunction[orientation];
 }
 
-const fullMatrix<double>& BasisHierarchicalVector::
+const fullMatrix<double>& BasisHierarchical1From::
 getPreEvaluatedDerivatives(unsigned int orientation) const{
   if(!preEvaluatedCurl)
     throw Exception("getPreEvaluatedDerivative: curl has not been preEvaluated");
@@ -216,7 +216,7 @@ getPreEvaluatedDerivatives(unsigned int orientation) const{
   return *preEvaluatedCurlFunction[orientation];
 }
 
-void BasisHierarchicalVector::getCurl(void) const{
+void BasisHierarchical1From::getCurl(void) const{
   // Alloc //
   curl = new vector<Polynomial>**[nRefSpace];
 
@@ -233,7 +233,7 @@ void BasisHierarchicalVector::getCurl(void) const{
   hasCurl = true;
 }
 
-string BasisHierarchicalVector::toString(void) const{
+string BasisHierarchical1From::toString(void) const{
   stringstream stream;
   unsigned int i = 0;
   const unsigned int refSpace = 0;
diff --git a/FunctionSpace/BasisHierarchicalVector.h b/FunctionSpace/BasisHierarchical1From.h
similarity index 72%
rename from FunctionSpace/BasisHierarchicalVector.h
rename to FunctionSpace/BasisHierarchical1From.h
index b45a834d305cbb646428ec9450fafc18c868309c..82faf8005b682e845c4a1ec8c062e849257b06ab 100644
--- a/FunctionSpace/BasisHierarchicalVector.h
+++ b/FunctionSpace/BasisHierarchical1From.h
@@ -1,5 +1,5 @@
-#ifndef _BASISHIERARCHICALVECTOR_H_
-#define _BASISHIERARCHICALVECTOR_H_
+#ifndef _BASISHIERARCHICAL1FROM_H_
+#define _BASISHIERARCHICAL1FROM_H_
 
 #include <string>
 #include "BasisLocal.h"
@@ -7,13 +7,13 @@
 #include "ReferenceSpace.h"
 
 /**
-   @interface BasisHierarchicalVector
-   @brief Interface for Hierarchical Vectorial Local Basis
+   @interface BasisHierarchical1From
+   @brief Interface for Hierarchical 1-Froml Local Basis
 
-   This is an interface for Hierarchical Vectorial Local Basis.@n
+   This is an interface for Hierarchical 1-Froml Local Basis.@n
 */
 
-class BasisHierarchicalVector: public BasisLocal{
+class BasisHierarchical1From: public BasisLocal{
  protected:
   // Orientation //
   ReferenceSpace* refSpace;
@@ -34,7 +34,7 @@ class BasisHierarchicalVector: public BasisLocal{
   mutable fullMatrix<double>** preEvaluatedCurlFunction;
 
  public:
-  virtual ~BasisHierarchicalVector(void);
+  virtual ~BasisHierarchical1From(void);
 
   virtual unsigned int getNOrientation(void) const;
   virtual unsigned int getOrientation(const MElement& element) const;
@@ -63,7 +63,7 @@ class BasisHierarchicalVector: public BasisLocal{
   std::string toString(void) const;
 
  protected:
-  BasisHierarchicalVector(void);
+  BasisHierarchical1From(void);
 
  private:
   void getCurl(void) const;
@@ -71,20 +71,20 @@ class BasisHierarchicalVector: public BasisLocal{
 
 /**
    @internal
-   @fn BasisHierarchicalVector::BasisHierarchicalVector
+   @fn BasisHierarchical1From::BasisHierarchical1From
 
-   Instanciates an new BasisHierarchicalVector
+   Instanciates an new BasisHierarchical1From
    @endinternal
    **
 
-   @fn BasisHierarchicalVector::~BasisHierarchicalVector
+   @fn BasisHierarchical1From::~BasisHierarchical1From
 
-   Deletes this BasisHierarchicalVector
+   Deletes this BasisHierarchical1From
    **
 
-   @fn BasisHierarchicalVector::toString
+   @fn BasisHierarchical1From::toString
    @return Returns a string describing this
-   BasisHierarchicalVector
+   BasisHierarchical1From
  */
 
 #endif
diff --git a/FunctionSpace/CMakeLists.txt b/FunctionSpace/CMakeLists.txt
index c2256639d3ccf8ed66c8819a45f852ea3a7e5026..7700ce8a55a8794c73f10757589eb0b64da527de 100644
--- a/FunctionSpace/CMakeLists.txt
+++ b/FunctionSpace/CMakeLists.txt
@@ -17,8 +17,8 @@ set(SRC
   BasisGenerator.cpp
 
   BasisLagrange.cpp
-  BasisHierarchicalScalar.cpp
-  BasisHierarchicalVector.cpp
+  BasisHierarchical0From.cpp
+  BasisHierarchical1From.cpp
 
   LineNodeBasis.cpp
   LineEdgeBasis.cpp
diff --git a/FunctionSpace/HexEdgeBasis.h b/FunctionSpace/HexEdgeBasis.h
index 0daa7609acfe3bce50d4470f6c9c48b75538d4ad..4dd16a9d95e72b072e9710c5ee4af61700384c6b 100644
--- a/FunctionSpace/HexEdgeBasis.h
+++ b/FunctionSpace/HexEdgeBasis.h
@@ -1,27 +1,27 @@
 #ifndef _HEXEDGEBASIS_H_
 #define _HEXEDGEBASIS_H_
 
-#include "BasisHierarchicalVector.h"
+#include "BasisHierarchical1From.h"
 
 /**
    @class HexEdgeBasis
    @brief An Edge Basis for Hexahedra
- 
-   This class can instantiate an Edge-Based Basis 
+
+   This class can instantiate an Edge-Based Basis
    (high or low order) for Hexahedra.@n
-   
-   It uses 
-   <a href="http://www.hpfem.jku.at/publications/szthesis.pdf">Zaglmayr's</a>  
+
+   It uses
+   <a href="http://www.hpfem.jku.at/publications/szthesis.pdf">Zaglmayr's</a>
    Basis for @em high @em order Polynomial%s generation.@n
  */
 
-class HexEdgeBasis: public BasisHierarchicalVector{
+class HexEdgeBasis: public BasisHierarchical1From{
  public:
   //! @param order The order of the Basis
   //!
   //! Returns a new Edge-Basis for Hexahedra of the given order
   HexEdgeBasis(int order);
-  
+
   //! Deletes this Basis
   //!
   virtual ~HexEdgeBasis(void);
diff --git a/FunctionSpace/HexNodeBasis.h b/FunctionSpace/HexNodeBasis.h
index 68d4bc16938c09b93338e506ee0f04ae8d5c2e51..855e28729d97bdfa682c98a7aa9f83cf888f979e 100644
--- a/FunctionSpace/HexNodeBasis.h
+++ b/FunctionSpace/HexNodeBasis.h
@@ -1,21 +1,21 @@
 #ifndef _HEXNODEBASIS_H_
 #define _HEXNODEBASIS_H_
 
-#include "BasisHierarchicalScalar.h"
+#include "BasisHierarchical0From.h"
 
 /**
    @class HexNodeBasis
    @brief A Node Basis for Hexahedra
- 
-   This class can instantiate a Node-Based Basis 
+
+   This class can instantiate a Node-Based Basis
    (high or low order) for Hexahedra.@n
-   
-   It uses 
-   <a href="http://www.hpfem.jku.at/publications/szthesis.pdf">Zaglmayr's</a>  
+
+   It uses
+   <a href="http://www.hpfem.jku.at/publications/szthesis.pdf">Zaglmayr's</a>
    Basis for @em high @em order Polynomial%s generation.@n
  */
 
-class HexNodeBasis: public BasisHierarchicalScalar{
+class HexNodeBasis: public BasisHierarchical0From{
  public:
   //! @param order The order of the Basis
   //!
diff --git a/FunctionSpace/LineEdgeBasis.h b/FunctionSpace/LineEdgeBasis.h
index 50519874e36d782b7a34918e128d1a6382818c26..411730c509264a7b62dd390cbe606f1e84d5dadf 100644
--- a/FunctionSpace/LineEdgeBasis.h
+++ b/FunctionSpace/LineEdgeBasis.h
@@ -1,31 +1,31 @@
 #ifndef _LINEEDGEBASIS_H_
 #define _LINEEDGEBASIS_H_
 
-#include "BasisHierarchicalVector.h"
+#include "BasisHierarchical1From.h"
 
 /**
    @class LineEdgeBasis
    @brief An Edge Basis for Lines
- 
-   This class can instantiate an Edge-Based Basis 
+
+   This class can instantiate an Edge-Based Basis
    (high or low order) for Lines.@n
-   
+
    It uses an @em adaptation of
-   <a href="http://www.hpfem.jku.at/publications/szthesis.pdf">Zaglmayr's</a>  
+   <a href="http://www.hpfem.jku.at/publications/szthesis.pdf">Zaglmayr's</a>
    Basis for @em high @em order Polynomial%s generation.@n
 
    This Basis is a restriction of a Quad Basis to @f$y = 0@f$.@n
-   
+
    It also uses the following mapping: @f$x = \frac{u + 1}{2}@f$.
 */
 
-class LineEdgeBasis: public BasisHierarchicalVector{
+class LineEdgeBasis: public BasisHierarchical1From{
  public:
   //! @param order The order of the Basis
   //!
   //! Returns a new Edge-Basis for Lines of the given order
   LineEdgeBasis(unsigned int order);
-  
+
   //! Deletes this Basis
   //!
   virtual ~LineEdgeBasis(void);
diff --git a/FunctionSpace/LineNedelecBasis.h b/FunctionSpace/LineNedelecBasis.h
index a23ee315bc2696d568e4f600e39c487b5cc555cd..edb4a699e8633ff54335792b50f581b238b132df 100644
--- a/FunctionSpace/LineNedelecBasis.h
+++ b/FunctionSpace/LineNedelecBasis.h
@@ -1,22 +1,22 @@
 #ifndef _LINENEDELECBASIS_H_
 #define _LINENEDELECBASIS_H_
 
-#include "BasisHierarchicalVector.h"
+#include "BasisHierarchical1From.h"
 
 /**
    @class LineNedelecBasis
    @brief Nedelec Basis for Lines
- 
-   This class can instantiate a Nedelec Basis 
+
+   This class can instantiate a Nedelec Basis
    for Lines.@n
 */
 
-class LineNedelecBasis: public BasisHierarchicalVector{
+class LineNedelecBasis: public BasisHierarchical1From{
  public:
   //! Returns a new Nedelec Basis for Lines
   //!
   LineNedelecBasis(void);
-  
+
   //! Deletes this Basis
   //!
   virtual ~LineNedelecBasis(void);
diff --git a/FunctionSpace/LineNodeBasis.h b/FunctionSpace/LineNodeBasis.h
index cc555d92d8d5985e15aa9042bbb39ae014c24bd7..6da87b9d878acd36bc5ce223d42db3e55ebbbcd7 100644
--- a/FunctionSpace/LineNodeBasis.h
+++ b/FunctionSpace/LineNodeBasis.h
@@ -1,31 +1,31 @@
 #ifndef _LINENODEBASIS_H_
 #define _LINENODEBASIS_H_
 
-#include "BasisHierarchicalScalar.h"
+#include "BasisHierarchical0From.h"
 
 /**
    @class LineNodeBasis
    @brief A Node Basis for Lines
- 
-   This class can instantiate a Node-Based Basis 
+
+   This class can instantiate a Node-Based Basis
    (high or low order) for Lines.@n
-   
+
    It uses an @em adaptation of
-   <a href="http://www.hpfem.jku.at/publications/szthesis.pdf">Zaglmayr's</a>  
+   <a href="http://www.hpfem.jku.at/publications/szthesis.pdf">Zaglmayr's</a>
    Basis for @em high @em order Polynomial%s generation.@n
 
    This Basis is a restriction of a Quad Basis to @f$y = 0@f$.@n
-   
+
    It also uses the following mapping: @f$x = \frac{u + 1}{2}@f$.
  */
 
-class LineNodeBasis: public BasisHierarchicalScalar{
+class LineNodeBasis: public BasisHierarchical0From{
  public:
   //! @param order The order of the Basis
   //!
   //! Returns a new Node-Basis for Lines of the given order
   LineNodeBasis(unsigned int order);
-  
+
   //! Deletes this Basis
   //!
   virtual ~LineNodeBasis(void);
diff --git a/FunctionSpace/QuadEdgeBasis.h b/FunctionSpace/QuadEdgeBasis.h
index b5a624b5ebab95ad94a5386e0f615085d7475d25..721c25d55c93a54c28d01cc8e6dd340814286273 100644
--- a/FunctionSpace/QuadEdgeBasis.h
+++ b/FunctionSpace/QuadEdgeBasis.h
@@ -1,31 +1,31 @@
 #ifndef _QUADEDGEBASIS_H_
 #define _QUADEDGEBASIS_H_
 
-#include "BasisHierarchicalVector.h"
+#include "BasisHierarchical1From.h"
 
 /**
    @class QuadEdgeBasis
    @brief An Edge Basis for Quads
- 
-   This class can instantiate an Edge-Based Basis 
+
+   This class can instantiate an Edge-Based Basis
    (high or low order) for Quads.@n
-   
+
    It uses a variation of
-   <a href="http://www.hpfem.jku.at/publications/szthesis.pdf">Zaglmayr's</a>  
+   <a href="http://www.hpfem.jku.at/publications/szthesis.pdf">Zaglmayr's</a>
    Basis for @em high @em order Polynomial%s generation.@n
 
    The following mapping has been applied to Zaglmayr's Basis for Quads:
    @li @f$x = \frac{u + 1}{2}@f$
-   @li @f$y = \frac{v + 1}{2}@f$ 
+   @li @f$y = \frac{v + 1}{2}@f$
 */
 
-class QuadEdgeBasis: public BasisHierarchicalVector{
+class QuadEdgeBasis: public BasisHierarchical1From{
  public:
   //! @param order The order of the Basis
   //!
   //! Returns a new Edge-Basis for Quads of the given order
   QuadEdgeBasis(int order);
-  
+
   //! Deletes this Basis
   //!
   virtual ~QuadEdgeBasis(void);
diff --git a/FunctionSpace/QuadNodeBasis.h b/FunctionSpace/QuadNodeBasis.h
index 16c2eed893a775aab9908119e604500106d03409..15f6205d200d9798df600d635d966b29ba3b3ed5 100644
--- a/FunctionSpace/QuadNodeBasis.h
+++ b/FunctionSpace/QuadNodeBasis.h
@@ -1,25 +1,25 @@
 #ifndef _QUADNODEBASIS_H_
 #define _QUADNODEBASIS_H_
 
-#include "BasisHierarchicalScalar.h"
+#include "BasisHierarchical0From.h"
 
 /**
    @class QuadNodeBasis
    @brief A Node Basis for Quads
- 
-   This class can instantiate a Node-Based Basis 
+
+   This class can instantiate a Node-Based Basis
    (high or low order) for Quads.@n
-   
+
    It uses a variation of
-   <a href="http://www.hpfem.jku.at/publications/szthesis.pdf">Zaglmayr's</a>  
+   <a href="http://www.hpfem.jku.at/publications/szthesis.pdf">Zaglmayr's</a>
    Basis for @em high @em order Polynomial%s generation.@n
- 
+
    The following mapping has been applied to Zaglmayr's Basis for Quads:
    @li @f$x = \frac{u + 1}{2}@f$
    @li @f$y = \frac{v + 1}{2}@f$
 */
 
-class QuadNodeBasis: public BasisHierarchicalScalar{
+class QuadNodeBasis: public BasisHierarchical0From{
  public:
   //! @param order The order of the Basis
   //!
diff --git a/FunctionSpace/TetEdgeBasis.h b/FunctionSpace/TetEdgeBasis.h
index e0f58df669cbf6548bfe3f9570c9ec346ff51414..61e4f982d2aef174d469b5e45f2605b19c4fdb37 100644
--- a/FunctionSpace/TetEdgeBasis.h
+++ b/FunctionSpace/TetEdgeBasis.h
@@ -1,27 +1,27 @@
 #ifndef _TETEDGEBASIS_H_
 #define _TETEDGEBASIS_H_
 
-#include "BasisHierarchicalVector.h"
+#include "BasisHierarchical1From.h"
 
 /**
    @class TetEdgeBasis
    @brief An Edge Basis for Tetrahedra
- 
-   This class can instantiate an Edge-Based Basis 
+
+   This class can instantiate an Edge-Based Basis
    (high or low order) for Tetrahedra.@n
-   
-   It uses 
-   <a href="http://www.hpfem.jku.at/publications/szthesis.pdf">Zaglmayr's</a>  
+
+   It uses
+   <a href="http://www.hpfem.jku.at/publications/szthesis.pdf">Zaglmayr's</a>
    Basis for @em high @em order Polynomial%s generation.@n
 */
 
-class TetEdgeBasis: public BasisHierarchicalVector{
+class TetEdgeBasis: public BasisHierarchical1From{
  public:
   //! @param order The order of the Basis
   //!
   //! Returns a new Edge-Basis for Tetrahedra of the given order
   TetEdgeBasis(unsigned int order);
-  
+
   //! Deletes this Basis
   //!
   virtual ~TetEdgeBasis(void);
diff --git a/FunctionSpace/TetNodeBasis.h b/FunctionSpace/TetNodeBasis.h
index efa5043dae098a5f2bfdf297ed583bfb305c02f9..b1ffb219306f65b57aeeab3e04076089efe62058 100644
--- a/FunctionSpace/TetNodeBasis.h
+++ b/FunctionSpace/TetNodeBasis.h
@@ -1,27 +1,27 @@
 #ifndef _TETNODEBASIS_H_
 #define _TETNODEBASIS_H_
 
-#include "BasisHierarchicalScalar.h"
+#include "BasisHierarchical0From.h"
 
 /**
    @class TetNodeBasis
    @brief A Node Basis for Tetrahedra
- 
-   This class can instantiate a Node-Based Basis 
+
+   This class can instantiate a Node-Based Basis
    (high or low order) for Tetrahedra.@n
-   
-   It uses 
-   <a href="http://www.hpfem.jku.at/publications/szthesis.pdf">Zaglmayr's</a>  
+
+   It uses
+   <a href="http://www.hpfem.jku.at/publications/szthesis.pdf">Zaglmayr's</a>
    Basis for @em high @em order Polynomial%s generation.@n
  */
 
-class TetNodeBasis: public BasisHierarchicalScalar{
+class TetNodeBasis: public BasisHierarchical0From{
  public:
   //! @param order The order of the Basis
   //!
   //! Returns a new Node-Basis for Tetrahedra of the given order
   TetNodeBasis(unsigned int order);
-  
+
   //! Deletes this Basis
   //!
   virtual ~TetNodeBasis(void);
diff --git a/FunctionSpace/TriEdgeBasis.h b/FunctionSpace/TriEdgeBasis.h
index 2dbcb9bbe79c30e4360b883f98c27c9c27744576..856b6e0dae07b9f3fb62abbc21eab506fc2334de 100644
--- a/FunctionSpace/TriEdgeBasis.h
+++ b/FunctionSpace/TriEdgeBasis.h
@@ -1,27 +1,27 @@
 #ifndef _TRIEDGEBASIS_H_
 #define _TRIEDGEBASIS_H_
 
-#include "BasisHierarchicalVector.h"
+#include "BasisHierarchical1From.h"
 
 /**
    @class TriEdgeBasis
    @brief An Edge Basis for Triangles
- 
-   This class can instantiate an Edge-Based Basis 
+
+   This class can instantiate an Edge-Based Basis
    (high or low order) for Triangles.@n
-   
-   It uses 
-   <a href="http://www.hpfem.jku.at/publications/szthesis.pdf">Zaglmayr's</a>  
+
+   It uses
+   <a href="http://www.hpfem.jku.at/publications/szthesis.pdf">Zaglmayr's</a>
    Basis for @em high @em order Polynomial%s generation.@n
 */
 
-class TriEdgeBasis: public BasisHierarchicalVector{
+class TriEdgeBasis: public BasisHierarchical1From{
  public:
   //! @param order The order of the Basis
   //!
   //! Returns a new Edge-Basis for Triangles of the given order
   TriEdgeBasis(unsigned int order);
-  
+
   //! Deletes this Basis
   //!
   virtual ~TriEdgeBasis(void);
diff --git a/FunctionSpace/TriNedelecBasis.h b/FunctionSpace/TriNedelecBasis.h
index 47a4d480c6392889ccd1cc679455720639a9c47e..078fc325383b8929a2b47dd31703c3015d337d99 100644
--- a/FunctionSpace/TriNedelecBasis.h
+++ b/FunctionSpace/TriNedelecBasis.h
@@ -1,22 +1,22 @@
 #ifndef _TRINEDELECBASIS_H_
 #define _TRINEDELECBASIS_H_
 
-#include "BasisHierarchicalVector.h"
+#include "BasisHierarchical1From.h"
 
 /**
    @class TriNedelecBasis
    @brief Nedelec Basis for Triangles
- 
-   This class can instantiate a Nedelec Basis 
+
+   This class can instantiate a Nedelec Basis
    for Triangles.@n
 */
 
-class TriNedelecBasis: public BasisHierarchicalVector{
+class TriNedelecBasis: public BasisHierarchical1From{
  public:
   //! Returns a new Nedelec Basis for Triangles
   //!
   TriNedelecBasis(void);
-  
+
   //! Deletes this Basis
   //!
   virtual ~TriNedelecBasis(void);
diff --git a/FunctionSpace/TriNodeBasis.h b/FunctionSpace/TriNodeBasis.h
index 129ca4ce2cb57d38362aafc4c961af653165003b..80d96f3e9de60d17248b05a27f1763484f6ec232 100644
--- a/FunctionSpace/TriNodeBasis.h
+++ b/FunctionSpace/TriNodeBasis.h
@@ -1,27 +1,27 @@
 #ifndef _TRINODEBASIS_H_
 #define _TRINODEBASIS_H_
 
-#include "BasisHierarchicalScalar.h"
+#include "BasisHierarchical0From.h"
 
 /**
    @class TriNodeBasis
    @brief A Node Basis for Triangles
- 
-   This class can instantiate a Node-Based Basis 
+
+   This class can instantiate a Node-Based Basis
    (high or low order) for Triangles.@n
-   
-   It uses 
-   <a href="http://www.hpfem.jku.at/publications/szthesis.pdf">Zaglmayr's</a>  
+
+   It uses
+   <a href="http://www.hpfem.jku.at/publications/szthesis.pdf">Zaglmayr's</a>
    Basis for @em high @em order Polynomial%s generation.@n
  */
 
-class TriNodeBasis: public BasisHierarchicalScalar{
+class TriNodeBasis: public BasisHierarchical0From{
  public:
   //! @param order The order of the Basis
   //!
   //! Returns a new Node-Basis for Triangles of the given order
   TriNodeBasis(unsigned int order);
-  
+
   //! Deletes this Basis
   //!
   virtual ~TriNodeBasis(void);