improved docs; cleaner server API; js_source now a URL attribute