shifted the setup so that it doesn't depend on jQuery