added knockout js and a whole bunch of other changes