updated compatibility. improved frontend js. made more options overrideable in app.js