Make server into module
Add infrastructure for routing
Move to request handler model
Add async handling