diff --git a/src/analysis/PolynomialBasis.hpp b/src/analysis/PolynomialBasis.hpp
index 4359f408d93db2bc814a9225f69b73982d04f796..84b223fd740b32a806b8501c395b2b793953faa9 100644
--- a/src/analysis/PolynomialBasis.hpp
+++ b/src/analysis/PolynomialBasis.hpp
@@ -7,6 +7,7 @@
 
 enum class BasisType
 {
+  undefined,
   lagrange,
   canonical,
   taylor
@@ -104,6 +105,8 @@ class PolynomialBasis
       return "canonical";
     case BasisType::taylor:
       return "taylor";
+    case BasisType::undefined:
+      return "undefined";
     default:
       return "unknown basis type";
     }
@@ -141,19 +144,17 @@ class PolynomialBasis
       return _buildTaylorBasis(shift);
       break;
     }
-    default:
+      // LCOV_EXCL_START
+    default: {
       throw UnexpectedError("unknown basis type");
     }
+      // LCOV_EXCL_STOP
+    }
   }
-  PUGS_INLINE constexpr PolynomialBasis(const TinyVector<N + 1, Polynomial<N>>& elements) noexcept
-    : m_elements{elements}
-  {}
 
   PUGS_INLINE
-  constexpr PolynomialBasis(TinyVector<N + 1, Polynomial<N>>&& elements) noexcept : m_elements{elements} {}
+  constexpr PolynomialBasis() noexcept : m_basis_type{BasisType::undefined} {}
 
-  PUGS_INLINE
-  constexpr PolynomialBasis() noexcept = default;
-  ~PolynomialBasis()                   = default;
+  ~PolynomialBasis() = default;
 };
 #endif   // POLYNOMIAL_BASIS_HPP
diff --git a/src/language/modules/SchemeModule.hpp b/src/language/modules/SchemeModule.hpp
index 963ed4af02a3c8e7895c89f705d15bac1ab8d521..aa0f1322618956da9b3a4bc095c87f95ebf719fa 100644
--- a/src/language/modules/SchemeModule.hpp
+++ b/src/language/modules/SchemeModule.hpp
@@ -17,8 +17,8 @@ inline ASTNodeDataType ast_node_data_type_from<std::shared_ptr<const IBoundaryCo
   ASTNodeDataType::build<ASTNodeDataType::type_id_t>("boundary_condition");
 
 template <>
-inline ASTNodeDataType ast_node_data_type_from<std::shared_ptr<const BasisType>> = {ASTNodeDataType::type_id_t,
-                                                                                    "basis_type"};
+inline ASTNodeDataType ast_node_data_type_from<std::shared_ptr<const BasisType>> =
+  ASTNodeDataType::build<ASTNodeDataType::type_id_t>("basis_type");
 
 class SchemeModule : public BuiltinModule
 {
diff --git a/tests/test_PolynomialBasis.cpp b/tests/test_PolynomialBasis.cpp
index ae3745553d9e5dc4a528e32a86818bd7965301e0..ac34fca34d84ac5b2f0ff7764e6097742abbd972 100644
--- a/tests/test_PolynomialBasis.cpp
+++ b/tests/test_PolynomialBasis.cpp
@@ -21,9 +21,7 @@ TEST_CASE("PolynomialBasis", "[analysis]")
 {
   SECTION("construction")
   {
-    TinyVector<3, Polynomial<2>> elements;
-    REQUIRE_NOTHROW(PolynomialBasis<2>(elements));
-    REQUIRE_NOTHROW(PolynomialBasis<2>());
+    REQUIRE_NOTHROW(PolynomialBasis<2>{});
   }
   SECTION("size")
   {
@@ -34,7 +32,7 @@ TEST_CASE("PolynomialBasis", "[analysis]")
   SECTION("build")
   {
     PolynomialBasis<2> B;
-    REQUIRE(B.displayType() == "unknown basis type");
+    REQUIRE(B.displayType() == "undefined");
     B.build(BasisType::canonical);
     REQUIRE(B.elements()[1] == Polynomial<2>{{0, 1, 0}});
     REQUIRE(B.elements()[2] == Polynomial<2>{{0, 0, 1}});