Data updates

This PR contains PR #4 #5 #6 plus some changes to allow dynamic data updates
I am not a fan of this `var self = this`

If you need to reference the `this` from the outer scope, I'd rather you use `bind(this)` or do `var self = this` __right before it is needed__. Changing to `self` when you already have the reference to the `this` you want makes little sense imo.