split up compiler middleware/dispatch method
made web.url a class instead of a bunch of ugly functions