page modules get page as first argument
middleware get router as first argument
adding Error.prototype.toSource