use strict;
 
-BEGIN {
-  unshift @INC, "modules/override"; # Use our own versions of various modules (e.g. YAML).
-  push    @INC, "modules/fallback"; # Only use our own versions of modules if there's no system version.
-  push    @INC, "SL";               # FCGI won't find modules that are not properly named. Help it by inclduging SL
-}
-
 use FCGI;
 use SL::Dispatcher;
+use SL::FCGIFixes;
+
+our $dispatcher = SL::Dispatcher->new('FastCGI');
+$dispatcher->pre_startup_setup;
+SL::FCGIFixes::apply_fixes();
+$dispatcher->pre_startup_checks;
 
-SL::Dispatcher::pre_startup();
 my $request = FCGI::Request();
-SL::Dispatcher::handle_request('FastCGI') while $request->Accept() >= 0;
+$dispatcher->handle_request($request) while $request->Accept() >= 0;
 
 1;