diff --git a/FunctionSpace/TetEdgeBasis.cpp b/FunctionSpace/TetEdgeBasis.cpp
index 2b546f000fbda362cb8aa7ff39e98a802066a789..afffb7e2fe982f0b8f3e7fd7ae5a6c468c6d61f5 100644
--- a/FunctionSpace/TetEdgeBasis.cpp
+++ b/FunctionSpace/TetEdgeBasis.cpp
@@ -86,7 +86,7 @@ TetEdgeBasis::TetEdgeBasis(unsigned int order){
 	  tmp2[1].sub(tmp1[1]);
 	  tmp2[2].sub(tmp1[2]);
 
-	  basis[s][i] = new vector<Polynomial>(tmp1);
+	  basis[s][i] = new vector<Polynomial>(tmp2);
 	}
 
 	// High Order
diff --git a/FunctionSpace/TriEdgeBasis.cpp b/FunctionSpace/TriEdgeBasis.cpp
index 73e4f83ab36bd0cbd779efe00259dc596d22221d..3ec8a5993a2937790ec0857a4ede7ca328d55971 100644
--- a/FunctionSpace/TriEdgeBasis.cpp
+++ b/FunctionSpace/TriEdgeBasis.cpp
@@ -14,7 +14,7 @@ TriEdgeBasis::TriEdgeBasis(unsigned int order){
 
   // Set Basis Type //
   this->order = order;
- 
+
   type = 1;
   dim  = 2;
 
@@ -38,10 +38,10 @@ TriEdgeBasis::TriEdgeBasis(unsigned int order){
   Legendre::intScaled(intLegendre, orderPlus);
 
   // Lagrange //
-  const Polynomial lagrange[3] = 
+  const Polynomial lagrange[3] =
     {
-      Polynomial(Polynomial(1, 0, 0, 0) - 
-		 Polynomial(1, 1, 0, 0) - 
+      Polynomial(Polynomial(1, 0, 0, 0) -
+		 Polynomial(1, 1, 0, 0) -
 		 Polynomial(1, 0, 1, 0)),
 
       Polynomial(Polynomial(1, 1, 0, 0)),
@@ -61,34 +61,34 @@ TriEdgeBasis::TriEdgeBasis(unsigned int order){
 
     for(int e = 0; e < 3; e++){
       for(int l = 0; l < orderPlus; l++){
-	// Nedelec 
+	// Nedelec
 	if(l == 0){
 	  vector<Polynomial> tmp1 = lagrange[(*(*edgeV[s])[e])[1]].gradient();
 	  vector<Polynomial> tmp2 = lagrange[(*(*edgeV[s])[e])[0]].gradient();
-	  
+
 	  tmp1[0].mul(lagrange[(*(*edgeV[s])[e])[0]]);
 	  tmp1[1].mul(lagrange[(*(*edgeV[s])[e])[0]]);
 	  tmp1[2].mul(lagrange[(*(*edgeV[s])[e])[0]]);
-	  
-	  
+
+
 	  tmp2[0].mul(lagrange[(*(*edgeV[s])[e])[1]]);
 	  tmp2[1].mul(lagrange[(*(*edgeV[s])[e])[1]]);
-	  tmp2[2].mul(lagrange[(*(*edgeV[s])[e])[1]]);      
-	  
+	  tmp2[2].mul(lagrange[(*(*edgeV[s])[e])[1]]);
+
 	  tmp2[0].sub(tmp1[0]);
 	  tmp2[1].sub(tmp1[1]);
 	  tmp2[2].sub(tmp1[2]);
-	  
+
 	  basis[s][i] = new vector<Polynomial>(tmp2);
 	}
 
 	// High Order
 	else{
-	  basis[s][i] = 
+	  basis[s][i] =
 	    new vector<Polynomial>
 	    ((intLegendre[l].compose(lagrange[(*(*edgeV[s])[e])[0]] -
 				     lagrange[(*(*edgeV[s])[e])[1]]
-				     , 
+				     ,
 				     lagrange[(*(*edgeV[s])[e])[1]] +
 				     lagrange[(*(*edgeV[s])[e])[0]])).gradient());
 	}
@@ -99,11 +99,11 @@ TriEdgeBasis::TriEdgeBasis(unsigned int order){
 
   // Cell Based //
 
-  // Preliminaries 
+  // Preliminaries
   const Polynomial p = lagrange[2] * 2 - Polynomial(1, 0, 0, 0);
-  
+
   for(int l = 0; l < orderPlus; l++){
-    u[l] = intLegendre[l].compose(lagrange[1] - lagrange[0], 
+    u[l] = intLegendre[l].compose(lagrange[1] - lagrange[0],
 				  lagrange[0] + lagrange[1]);
     v[l] = legendre[l].compose(p);
     v[l].mul(lagrange[2]);
@@ -111,17 +111,17 @@ TriEdgeBasis::TriEdgeBasis(unsigned int order){
 
   vector<Polynomial> gradL1 = lagrange[0].gradient();
   vector<Polynomial> gradL2 = lagrange[1].gradient();
-  
+
   vector<Polynomial> l2GradL1(gradL1);
   l2GradL1[0].mul(lagrange[1]);
   l2GradL1[1].mul(lagrange[1]);
   l2GradL1[2].mul(lagrange[1]);
-  
+
   vector<Polynomial> l1GradL2(gradL2);
   l1GradL2[0].mul(lagrange[0]);
   l1GradL2[1].mul(lagrange[0]);
   l1GradL2[2].mul(lagrange[0]);
-  
+
   vector<Polynomial> subGradL1L2(l2GradL1);
   subGradL1L2[0].sub(l1GradL2[0]);
   subGradL1L2[1].sub(l1GradL2[1]);
@@ -129,7 +129,7 @@ TriEdgeBasis::TriEdgeBasis(unsigned int order){
 
   for(unsigned int s = 0; s < nRefSpace; s++){
     unsigned int i = nEdge;
-  
+
     // Type 1
     for(unsigned int l1 = 1; l1 < order; l1++){
       for(int l2 = 0; l2 + (int)l1 - 1 < orderMinus; l2++){
@@ -143,35 +143,35 @@ TriEdgeBasis::TriEdgeBasis(unsigned int order){
 	tmp2[0].mul(v[l2]);
 	tmp2[1].mul(v[l2]);
 	tmp2[2].mul(v[l2]);
-	
+
 	tmp2[0].add(tmp1[0]);
 	tmp2[1].add(tmp1[1]);
 	tmp2[2].add(tmp1[2]);
-	
+
 	basis[s][i] = new vector<Polynomial>(tmp2);
 
 	i++;
       }
     }
-  
+
     // Type 2
     for(unsigned int l1 = 1; l1 < order; l1++){
       for(int l2 = 0; l2 + (int)l1 - 1 < orderMinus; l2++){
 	vector<Polynomial> tmp1 = v[l2].gradient();
 	vector<Polynomial> tmp2 = u[l1].gradient();
-	
+
 	tmp1[0].mul(u[l1]);
 	tmp1[1].mul(u[l1]);
 	tmp1[2].mul(u[l1]);
-	
+
 	tmp2[0].mul(v[l2]);
 	tmp2[1].mul(v[l2]);
 	tmp2[2].mul(v[l2]);
-	
+
 	tmp2[0].sub(tmp1[0]);
 	tmp2[1].sub(tmp1[1]);
 	tmp2[2].sub(tmp1[2]);
-	
+
 	basis[s][i] = new vector<Polynomial>(tmp2);
 
 	i++;
@@ -181,16 +181,16 @@ TriEdgeBasis::TriEdgeBasis(unsigned int order){
     // Type 3
     for(int l = 0; l < orderMinus; l++){
       vector<Polynomial> subGradL1L2V(subGradL1L2);
-    
+
       subGradL1L2V[0].mul(v[l]);
       subGradL1L2V[1].mul(v[l]);
       subGradL1L2V[2].mul(v[l]);
-      
+
       basis[s][i] = new vector<Polynomial>(subGradL1L2V);
-      
+
       i++;
     }
-  }  
+  }
 
   // Free Temporary Sapce //
   delete[] legendre;
diff --git a/FunctionSpace/TriNedelecBasis.cpp b/FunctionSpace/TriNedelecBasis.cpp
index 6ce5cd4f4bae873828bc35181d7a1f6c5a04c9e5..066bd34d8cc4eb6a4aae7ebc0b6a57233ea98bb6 100644
--- a/FunctionSpace/TriNedelecBasis.cpp
+++ b/FunctionSpace/TriNedelecBasis.cpp
@@ -24,10 +24,10 @@ TriNedelecBasis::TriNedelecBasis(void){
   nFunction = 3;
 
   // Lagrange //
-  const Polynomial lagrange[3] = 
+  const Polynomial lagrange[3] =
     {
-      Polynomial(Polynomial(1, 0, 0, 0) - 
-		 Polynomial(1, 1, 0, 0) - 
+      Polynomial(Polynomial(1, 0, 0, 0) -
+		 Polynomial(1, 1, 0, 0) -
 		 Polynomial(1, 0, 1, 0)),
 
       Polynomial(Polynomial(1, 1, 0, 0)),
@@ -50,12 +50,12 @@ TriNedelecBasis::TriNedelecBasis(void){
       tmp1[0].mul(lagrange[(*(*edgeV[s])[e])[0]]);
       tmp1[1].mul(lagrange[(*(*edgeV[s])[e])[0]]);
       tmp1[2].mul(lagrange[(*(*edgeV[s])[e])[0]]);
-      
-      
+
+
       tmp2[0].mul(lagrange[(*(*edgeV[s])[e])[1]]);
       tmp2[1].mul(lagrange[(*(*edgeV[s])[e])[1]]);
-      tmp2[2].mul(lagrange[(*(*edgeV[s])[e])[1]]);      
-      
+      tmp2[2].mul(lagrange[(*(*edgeV[s])[e])[1]]);
+
       tmp2[0].sub(tmp1[0]);
       tmp2[1].sub(tmp1[1]);
       tmp2[2].sub(tmp1[2]);