Init function is now much simpler (but does the same thing). Copying to cache is now taken care of by an event.

Upgraded underscore.js to latest version to support some of these changes.