complete overhaul of JS, rumors of jquery demise is abound so I've decided to go more pure