diff --git a/MeshLib/Elements/TemplateHex-impl.h b/MeshLib/Elements/TemplateHex-impl.h
index 0a448896bf2d715fa8eff7d2ec6d13cd39ef4057..a88e1f9d504c25a7b2660aceb9c5306ee6e9bea2 100644
--- a/MeshLib/Elements/TemplateHex-impl.h
+++ b/MeshLib/Elements/TemplateHex-impl.h
@@ -23,10 +23,10 @@
 namespace MeshLib {
 
 template <unsigned NNODES, CellType CELLHEXTYPE>
-const unsigned TemplateHex<NNODES, CELLHEXTYPE>::n_all_nodes = NNODES;
+const unsigned TemplateHex<NNODES, CELLHEXTYPE>::n_all_nodes;
 
 template <unsigned NNODES, CellType CELLHEXTYPE>
-const unsigned TemplateHex<NNODES, CELLHEXTYPE>::n_base_nodes = 8;
+const unsigned TemplateHex<NNODES, CELLHEXTYPE>::n_base_nodes;
 
 template <unsigned NNODES, CellType CELLHEXTYPE>
 const unsigned TemplateHex<NNODES,CELLHEXTYPE>::_face_nodes[6][4] =
diff --git a/MeshLib/Elements/TemplateHex.h b/MeshLib/Elements/TemplateHex.h
index e78d6556012dd80838bc1b7ff64fe47a804a483e..f6d7840677b7bf34b4567b2ae528f66a0dc43ab5 100644
--- a/MeshLib/Elements/TemplateHex.h
+++ b/MeshLib/Elements/TemplateHex.h
@@ -51,10 +51,10 @@ class TemplateHex : public Cell
 {
 public:
 	/// Constant: The number of all nodes for this element
-	static const unsigned n_all_nodes;
+	static const unsigned n_all_nodes = NNODES;
 
 	/// Constant: The number of base nodes for this element
-	static const unsigned n_base_nodes;
+	static const unsigned n_base_nodes = 8u;
 
 	/// Constructor with an array of mesh nodes.
 	TemplateHex(Node* nodes[NNODES], unsigned value = 0, std::size_t id = std::numeric_limits<std::size_t>::max());
diff --git a/MeshLib/Elements/TemplateLine-impl.h b/MeshLib/Elements/TemplateLine-impl.h
index cc9eea7db680cfe5a2441fed8476a8156b3ceaac..ab6f5dc5ec03bcdbc6695777aa5b653c0f433e9f 100644
--- a/MeshLib/Elements/TemplateLine-impl.h
+++ b/MeshLib/Elements/TemplateLine-impl.h
@@ -64,13 +64,13 @@ ElementErrorCode TemplateLine<NNODES,CELLLINETYPE>::validate() const
 }
 
 template <unsigned NNODES, CellType CELLLINETYPE>
-const unsigned TemplateLine<NNODES, CELLLINETYPE>::dimension = 1u;
+const unsigned TemplateLine<NNODES, CELLLINETYPE>::dimension;
 
 template <unsigned NNODES, CellType CELLLINETYPE>
-const unsigned TemplateLine<NNODES, CELLLINETYPE>::n_all_nodes = NNODES;
+const unsigned TemplateLine<NNODES, CELLLINETYPE>::n_all_nodes;
 
 template <unsigned NNODES, CellType CELLLINETYPE>
-const unsigned TemplateLine<NNODES, CELLLINETYPE>::n_base_nodes = 2u;
+const unsigned TemplateLine<NNODES, CELLLINETYPE>::n_base_nodes;
 
 } // namespace MeshLib
 
diff --git a/MeshLib/Elements/TemplateLine.h b/MeshLib/Elements/TemplateLine.h
index b69a116772e331cad49c06658ef892bc61704d43..2dc01ca6cb479b70b5729ab3120b6ef7557ec690 100644
--- a/MeshLib/Elements/TemplateLine.h
+++ b/MeshLib/Elements/TemplateLine.h
@@ -39,13 +39,13 @@ class TemplateLine : public Element
 {
 public:
 	/// Constant: Dimension of this mesh element
-	static const unsigned dimension;
+	static const unsigned dimension = 1u;
 
 	/// Constant: The number of all nodes for this element
-	static const unsigned n_all_nodes;
+	static const unsigned n_all_nodes = NNODES;
 
 	/// Constant: The number of base nodes for this element
-	static const unsigned n_base_nodes;
+	static const unsigned n_base_nodes = 2u;
 
 	/// Constructor with an array of mesh nodes.
 	TemplateLine(Node* nodes[NNODES], unsigned value = 0, std::size_t id = std::numeric_limits<std::size_t>::max());
diff --git a/MeshLib/Elements/TemplatePrism-impl.h b/MeshLib/Elements/TemplatePrism-impl.h
index 6910f7b88bec4022f33a341ac0d4f405f0c24eab..3029b24043788017370fa7653562f427b70547bf 100644
--- a/MeshLib/Elements/TemplatePrism-impl.h
+++ b/MeshLib/Elements/TemplatePrism-impl.h
@@ -25,10 +25,10 @@
 namespace MeshLib {
 
 template <unsigned NNODES, CellType CELLPRISMTYPE>
-const unsigned TemplatePrism<NNODES, CELLPRISMTYPE>::n_all_nodes = NNODES;
+const unsigned TemplatePrism<NNODES, CELLPRISMTYPE>::n_all_nodes;
 
 template <unsigned NNODES, CellType CELLPRISMTYPE>
-const unsigned TemplatePrism<NNODES, CELLPRISMTYPE>::n_base_nodes = 6;
+const unsigned TemplatePrism<NNODES, CELLPRISMTYPE>::n_base_nodes;
 
 template <unsigned NNODES, CellType CELLPRISMTYPE>
 const unsigned TemplatePrism<NNODES,CELLPRISMTYPE>::_face_nodes[5][4] =
diff --git a/MeshLib/Elements/TemplatePrism.h b/MeshLib/Elements/TemplatePrism.h
index dcdf190bc8e5383c77be4ade7a6922bad7c5c321..002a5c9ae846f4f6c56e3038fbb883a1bffa010f 100644
--- a/MeshLib/Elements/TemplatePrism.h
+++ b/MeshLib/Elements/TemplatePrism.h
@@ -49,10 +49,10 @@ class TemplatePrism : public Cell
 {
 public:
 	/// Constant: The number of all nodes for this element
-	static const unsigned n_all_nodes;
+	static const unsigned n_all_nodes = NNODES;
 
 	/// Constant: The number of base nodes for this element
-	static const unsigned n_base_nodes;
+	static const unsigned n_base_nodes = 6u;
 
 	/// Constructor with an array of mesh nodes.
 	TemplatePrism(Node* nodes[NNODES], unsigned value = 0, std::size_t id = std::numeric_limits<std::size_t>::max());
diff --git a/MeshLib/Elements/TemplatePyramid-impl.h b/MeshLib/Elements/TemplatePyramid-impl.h
index c37d6d40c1cbed4b95ea7b7c3e33a16bace59f1a..4a93bab8bfc9a1e3404e64082ebbd0ef6bdc28d5 100644
--- a/MeshLib/Elements/TemplatePyramid-impl.h
+++ b/MeshLib/Elements/TemplatePyramid-impl.h
@@ -25,10 +25,10 @@
 namespace MeshLib {
 
 template <unsigned NNODES, CellType CELLPYRAMIDTYPE>
-const unsigned TemplatePyramid<NNODES, CELLPYRAMIDTYPE>::n_all_nodes = NNODES;
+const unsigned TemplatePyramid<NNODES, CELLPYRAMIDTYPE>::n_all_nodes;
 
 template <unsigned NNODES, CellType CELLPYRAMIDTYPE>
-const unsigned TemplatePyramid<NNODES, CELLPYRAMIDTYPE>::n_base_nodes = 5;
+const unsigned TemplatePyramid<NNODES, CELLPYRAMIDTYPE>::n_base_nodes;
 
 template <unsigned NNODES, CellType CELLPYRAMIDTYPE>
 const unsigned TemplatePyramid<NNODES,CELLPYRAMIDTYPE>::_face_nodes[5][4] =
diff --git a/MeshLib/Elements/TemplatePyramid.h b/MeshLib/Elements/TemplatePyramid.h
index 9e4e6b4eeefc6ae5805534d28ff68079b4c7f31b..1f6eb67cbcde1292f695a482e1f145552fdb0494 100644
--- a/MeshLib/Elements/TemplatePyramid.h
+++ b/MeshLib/Elements/TemplatePyramid.h
@@ -47,10 +47,10 @@ class TemplatePyramid : public Cell
 {
 public:
 	/// Constant: The number of all nodes for this element
-	static const unsigned n_all_nodes;
+	static const unsigned n_all_nodes = NNODES;
 
 	/// Constant: The number of base nodes for this element
-	static const unsigned n_base_nodes;
+	static const unsigned n_base_nodes = 5u;
 
 	/// Constructor with an array of mesh nodes.
 	TemplatePyramid(Node* nodes[NNODES], unsigned value = 0, std::size_t id = std::numeric_limits<std::size_t>::max());
diff --git a/MeshLib/Elements/TemplateQuad-impl.h b/MeshLib/Elements/TemplateQuad-impl.h
index 3cee0ef11532a0a3199e60f83973c01e4dcd5479..afd624856b42bf684cc3ca4911314694970c72c8 100644
--- a/MeshLib/Elements/TemplateQuad-impl.h
+++ b/MeshLib/Elements/TemplateQuad-impl.h
@@ -25,10 +25,10 @@ namespace MeshLib
 {
 
 template <unsigned NNODES, CellType CELLQUADTYPE>
-const unsigned TemplateQuad<NNODES, CELLQUADTYPE>::n_all_nodes = NNODES;
+const unsigned TemplateQuad<NNODES, CELLQUADTYPE>::n_all_nodes;
 
 template <unsigned NNODES, CellType CELLQUADTYPE>
-const unsigned TemplateQuad<NNODES, CELLQUADTYPE>::n_base_nodes = 4;
+const unsigned TemplateQuad<NNODES, CELLQUADTYPE>::n_base_nodes;
 
 template <unsigned NNODES, CellType CELLQUADTYPE>
 const unsigned TemplateQuad<NNODES, CELLQUADTYPE>::_edge_nodes[4][2] =
diff --git a/MeshLib/Elements/TemplateQuad.h b/MeshLib/Elements/TemplateQuad.h
index 81b61de3208b1fa03b7f053c674117c3f0216a2c..e6619e86ddb4ac03edd2d12206b4de5966879cae 100644
--- a/MeshLib/Elements/TemplateQuad.h
+++ b/MeshLib/Elements/TemplateQuad.h
@@ -41,10 +41,10 @@ class TemplateQuad : public Face
 {
 public:
 	/// Constant: The number of all nodes for this element
-	static const unsigned n_all_nodes;
+	static const unsigned n_all_nodes = NNODES;
 
 	/// Constant: The number of base nodes for this element
-	static const unsigned n_base_nodes;
+	static const unsigned n_base_nodes = 4u;
 
 	/// Constructor with an array of mesh nodes.
 	TemplateQuad(Node* nodes[NNODES], unsigned value = 0, std::size_t id = std::numeric_limits<std::size_t>::max());
diff --git a/MeshLib/Elements/TemplateTet-impl.h b/MeshLib/Elements/TemplateTet-impl.h
index 01425b06d7b86b5a1f44d8ded28e1fb704be4db0..37a06afed399c9edffd91523583ba8a435aaa3e5 100644
--- a/MeshLib/Elements/TemplateTet-impl.h
+++ b/MeshLib/Elements/TemplateTet-impl.h
@@ -22,10 +22,10 @@
 namespace MeshLib {
 
 template <unsigned NNODES, CellType CELLTETTYPE>
-const unsigned TemplateTet<NNODES, CELLTETTYPE>::n_all_nodes = NNODES;
+const unsigned TemplateTet<NNODES, CELLTETTYPE>::n_all_nodes;
 
 template <unsigned NNODES, CellType CELLTETTYPE>
-const unsigned TemplateTet<NNODES, CELLTETTYPE>::n_base_nodes = 4;
+const unsigned TemplateTet<NNODES, CELLTETTYPE>::n_base_nodes;
 
 template <unsigned NNODES, CellType CELLTETTYPE>
 const unsigned TemplateTet<NNODES,CELLTETTYPE>::_face_nodes[4][3] =
diff --git a/MeshLib/Elements/TemplateTet.h b/MeshLib/Elements/TemplateTet.h
index 01517fa72fa2dc20b5ddb2da5337d6b4b7f6ff41..fc5fa63549f3932131c404d836dfcaf7bd7a7134 100644
--- a/MeshLib/Elements/TemplateTet.h
+++ b/MeshLib/Elements/TemplateTet.h
@@ -46,10 +46,10 @@ class TemplateTet : public Cell
 {
 public:
 	/// Constant: The number of all nodes for this element
-	static const unsigned n_all_nodes;
+	static const unsigned n_all_nodes = NNODES;
 
 	/// Constant: The number of base nodes for this element
-	static const unsigned n_base_nodes;
+	static const unsigned n_base_nodes = 4u;
 
 	/// Constructor with an array of mesh nodes.
 	TemplateTet(Node* nodes[NNODES], unsigned value = 0, std::size_t id = std::numeric_limits<std::size_t>::max());
diff --git a/MeshLib/Elements/TemplateTri-impl.h b/MeshLib/Elements/TemplateTri-impl.h
index 1993b5b825bfd24b7268a6401ba90203b28e344f..1eae73062f50fcdc45f772d4b8a9aad986bb68a5 100644
--- a/MeshLib/Elements/TemplateTri-impl.h
+++ b/MeshLib/Elements/TemplateTri-impl.h
@@ -18,10 +18,10 @@
 namespace MeshLib {
 
 template <unsigned NNODES, CellType CELLTRITYPE>
-const unsigned TemplateTri<NNODES, CELLTRITYPE>::n_all_nodes = NNODES;
+const unsigned TemplateTri<NNODES, CELLTRITYPE>::n_all_nodes;
 
 template <unsigned NNODES, CellType CELLTRITYPE>
-const unsigned TemplateTri<NNODES, CELLTRITYPE>::n_base_nodes = 3;
+const unsigned TemplateTri<NNODES, CELLTRITYPE>::n_base_nodes;
 
 template <unsigned NNODES, CellType CELLTRITYPE>
 const unsigned TemplateTri<NNODES,CELLTRITYPE>::_edge_nodes[3][2] = {
diff --git a/MeshLib/Elements/TemplateTri.h b/MeshLib/Elements/TemplateTri.h
index 62ec311fe3c596722fb0924afd9f3b435676496f..a0c05f27d38dd4ccb0cf4a630e3eb3d951b56cb4 100644
--- a/MeshLib/Elements/TemplateTri.h
+++ b/MeshLib/Elements/TemplateTri.h
@@ -48,10 +48,10 @@ class TemplateTri : public Face
 {
 public:
 	/// Constant: The number of all nodes for this element
-	static const unsigned n_all_nodes;
+	static const unsigned n_all_nodes = NNODES;
 
 	/// Constant: The number of base nodes for this element
-	static const unsigned n_base_nodes;
+	static const unsigned n_base_nodes = 3u;
 
 	/// Constructor with an array of mesh nodes.
 	TemplateTri(Node* nodes[NNODES], unsigned value = 0, std::size_t id = std::numeric_limits<std::size_t>::max());