lots of updates to JavaScript