diff --git a/meshmode/discretization/connection.py b/meshmode/discretization/connection.py
index e0fae7ed83d10597fb6c58fdc844421ac36604e4..b20b2678f8da7fe1ab53f5556eaf20aeb17ea220 100644
--- a/meshmode/discretization/connection.py
+++ b/meshmode/discretization/connection.py
@@ -187,6 +187,12 @@ def make_same_mesh_connection(queue, to_discr, from_discr):
     return DiscretizationConnection(
             from_discr, to_discr, groups)
 
+
+def make_boundary_extractor(queue, discr):
+    """
+    :return: a tuple ``(bdry_mesh, bdry_discr, connection)``
+    """
+
 # }}}
 
 # vim: foldmethod=marker
diff --git a/requirements.txt b/requirements.txt
new file mode 100644
index 0000000000000000000000000000000000000000..dfe1137f25ff3ad695320f3e716517cea7be1781
--- /dev/null
+++ b/requirements.txt
@@ -0,0 +1,4 @@
+numpy
+git+git://github.com/inducer/modepy
+git+git://github.com/pyopencl/pyopencl
+git+git://github.com/inducer/loopy