moved to heavily modified smoothie.js