lots of new js additions