diff --git a/Numeric/nodalBasis.h b/Numeric/nodalBasis.h
index 9a614d1021e0b074e047b6c65a14871c43486e96..6a283f4eb754829054f4b00202543ec22a422672 100644
--- a/Numeric/nodalBasis.h
+++ b/Numeric/nodalBasis.h
@@ -16,18 +16,18 @@ class nodalBasis {
   bool serendip;
   fullMatrix<double> points;
 
-  virtual void initialize() {};
+  virtual void initialize() = 0;
 
   // Basis functions evaluation
-  inline virtual void f(double u, double v, double w, double *sf) const {};
-  inline void f(fullMatrix<double> &coord, fullMatrix<double> &sf) const {};
+  inline virtual void f(double u, double v, double w, double *sf) const {Msg::Fatal("Not implemented");};
+  inline virtual void f(fullMatrix<double> &coord, fullMatrix<double> &sf) const {Msg::Fatal("Not implemented");};
 
   // Basis functions gradients evaluation
-  inline virtual void df(double u, double v, double w, double grads[][3]) const {};
-  inline void df(fullMatrix<double> &coord, fullMatrix<double> &dfm) const {};
+  inline virtual void df(double u, double v, double w, double grads[][3]) const {Msg::Fatal("Not implemented");};
+  inline virtual void df(fullMatrix<double> &coord, fullMatrix<double> &dfm) const {Msg::Fatal("Not implemented");};
   
-  inline void ddf(double u, double v, double w, double grads[][3][3]) const {};
-  inline void dddf(double u, double v, double w, double grads[][3][3][3]) const {};
+  inline virtual void ddf(double u, double v, double w, double grads[][3][3]) const {Msg::Fatal("Not implemented");};
+  inline virtual void dddf(double u, double v, double w, double grads[][3][3][3]) const {Msg::Fatal("Not implemented");};
 
   inline virtual int getNumShapeFunctions() const {Msg::Fatal("Not implemented"); return -1;}
 
@@ -50,7 +50,7 @@ class nodalBasis {
   inline virtual const std::vector<int> &getClosure(int id) const {Msg::Fatal("Not implemented"); std::vector<int> *ret=NULL; return *ret;}
   inline virtual const std::vector<int> &getFullClosure(int id) const {Msg::Fatal("Not implemented"); std::vector<int> *ret=NULL; return *ret;}
   inline virtual int getClosureId(int iFace, int iSign=1, int iRot=0) const {Msg::Fatal("Not implemented"); return -1;}
-  inline void breakClosureId(int i, int &iFace, int &iSign, int &iRot) const {Msg::Fatal("Not implemented");iFace=-1; iSign=-1; iRot=-1;}
+  inline virtual void breakClosureId(int i, int &iFace, int &iSign, int &iRot) const {Msg::Fatal("Not implemented");iFace=-1; iSign=-1; iRot=-1;}
 
   static int getTag(int parentTag, int order, bool serendip = false)
   {
diff --git a/Numeric/polynomialBasis.cpp b/Numeric/polynomialBasis.cpp
index 1965fb95421ac3cef9d2a58ce1509b651f677970..6df73cf36f12f82f520508133ef57b94b5d085d3 100644
--- a/Numeric/polynomialBasis.cpp
+++ b/Numeric/polynomialBasis.cpp
@@ -1521,8 +1521,7 @@ void polynomialBasis::initialize()
   
   this->points.print();
   coefficients = generateLagrangeMonomialCoefficients(monomials, points);
-
-}
+ }
 
 
 const polynomialBasis *polynomialBases::find(int tag)