Restructured to separate server from web app.