make hammer.js optional