updated API & reimplemented WebUI