Data models with schema definition, and event propagation inspired by Mongoose & Backbone.js