fix incorrect caching, tons of JS work