added dynamic app.listen to web.js