rest of the js changes from a pull