diff --git a/README.md b/README.md
index 86a4a8dc648773476cfa6fbba5d67f8e6a7b15c1..3ef180207e5f9733a0c6b5fd4887b13c0dccbb4b 100644
--- a/README.md
+++ b/README.md
@@ -6,7 +6,7 @@ This is an exploration of the distributed identity system
 All of the servers here are based on node.js, and some number of 3rd party node modules are required to make them go.  ([npm](http://npmjs.org/) is a good way to get these libraries)
 
 * node.js (>= 0.4.5): http://nodejs.org/
-* connect (>= 1.3.0): http://senchalabs.github.com/connect/
+* express (>= 2.3.11): http://senchalabs.github.com/express/
 * xml2js (>= 0.1.5)
 * sqlite (>= 1.0.3)
 * mustache (>= 0.3.1)
diff --git a/authority/server/run.js b/authority/server/app.js
similarity index 96%
rename from authority/server/run.js
rename to authority/server/app.js
index 1c24d5bfacf10ec75891688902ecc0d883cf0553..c88200b7ced1bb9436b6ef8c3df6684236cbd621 100644
--- a/authority/server/run.js
+++ b/authority/server/app.js
@@ -11,7 +11,7 @@ const STATIC_DIR = path.join(path.dirname(__dirname), "static");
 
 const COOKIE_SECRET = secrets.hydrateSecret('cookie_secret', __dirname);
 
-exports.handler = function(request, response, next) {
+function handler(request, response, next) {
     // dispatch!
     var urlpath = url.parse(request.url).pathname;
 
@@ -56,4 +56,6 @@ exports.setup = function(server) {
         session_key: "browserid_state",
         path: '/'
     }));
+
+    server.use(handler);
 }
diff --git a/authority/server/standalone.js b/authority/server/standalone.js
index 7563c90864caa847649855d7bdd1a4fd15283aa9..6623c4ae102b4e2914393de17fe939be3bedfb52 100644
--- a/authority/server/standalone.js
+++ b/authority/server/standalone.js
@@ -3,24 +3,23 @@ var   sys = require("sys"),
       url = require("url"),
      path = require("path"),
        fs = require("fs"),
-  connect = require("connect");
+  express = require("express");
 
 var PRIMARY_HOST = "127.0.0.1";
 var PRIMARY_PORT = 62700;
 
-var handler = require("./run.js");
+var handler = require("./app.js");
 
-var server = connect.createServer().use(connect.favicon())
-    .use(connect.logger({
-        stream: fs.createWriteStream(path.join(__dirname, "server.log"))
-    }));
+var app = require('express').createServer();
 
-// let the specific server interact directly with the connect server to register their middleware
-if (handler.setup) handler.setup(server);
+app.use(express.logger({
+    stream: fs.createWriteStream(path.join(__dirname, "server.log"))
+}));
 
-server.use(handler.handler);
+// let the specific server interact directly with the connect server to register their middleware
+if (handler.setup) handler.setup(app);
 
 // use the connect 'static' middleware for serving of static files (cache headers, HTTP range, etc)
-server.use(connect.static(path.join(path.dirname(__dirname), "static")));
+app.use(express.static(path.join(path.dirname(__dirname), "static")));
 
-server.listen(PRIMARY_PORT, PRIMARY_HOST);
+app.listen(PRIMARY_PORT, PRIMARY_HOST);