diff --git a/meshmode/discretization/poly_element.py b/meshmode/discretization/poly_element.py
index 5f636e78165f46b32ecb9c41e2883927ece81f82..6615b16a57b4f58d5102fc513be94566dc2eded9 100644
--- a/meshmode/discretization/poly_element.py
+++ b/meshmode/discretization/poly_element.py
@@ -102,7 +102,17 @@ class PolynomialElementGroupBase(ElementGroupBase):
 
 # {{{ concrete element groups for simplices
 
-class PolynomialSimplexElementGroupBase(PolynomialElementGroupBase):
+class SimplexElementGroupBase(ElementGroupBase):
+    @memoize_method
+    def from_mesh_interp_matrix(self):
+        meg = self.mesh_el_group
+        return mp.resampling_matrix(
+                mp.simplex_best_available_basis(meg.dim, meg.order),
+                self.unit_nodes,
+                meg.unit_nodes)
+
+
+class PolynomialSimplexElementGroupBase(PolynomialElementGroupBase, SimplexElementGroupBase):
     def is_orthogonal_basis(self):
         return self.dim <= 3
 
@@ -118,14 +128,6 @@ class PolynomialSimplexElementGroupBase(PolynomialElementGroupBase):
         else:
             return mp.grad_simplex_monomial_basis(self.dim, self.order)
 
-    @memoize_method
-    def from_mesh_interp_matrix(self):
-        meg = self.mesh_el_group
-        return mp.resampling_matrix(
-                mp.simplex_best_available_basis(meg.dim, meg.order),
-                self.unit_nodes,
-                meg.unit_nodes)
-
 
 class InterpolatoryQuadratureSimplexElementGroup(PolynomialSimplexElementGroupBase):
     """Elemental discretization supplying a high-order quadrature rule
@@ -160,7 +162,7 @@ class InterpolatoryQuadratureSimplexElementGroup(PolynomialSimplexElementGroupBa
         return self._quadrature_rule().weights
 
 
-class QuadratureSimplexElementGroup(PolynomialSimplexElementGroupBase):
+class QuadratureSimplexElementGroup(SimplexElementGroupBase):
     """Elemental discretization supplying a high-order quadrature rule
     with a number of nodes which does not necessarily match the number of
     polynomials in :math:`P^k`. This discretization therefore excels at
@@ -186,6 +188,7 @@ class QuadratureSimplexElementGroup(PolynomialSimplexElementGroupBase):
 
         dim2, nunit_nodes = result.shape
         assert dim2 == self.mesh_el_group.dim
+
         return result
 
     @property