replace e.g. `foo[foo.length] = bar` with `foo.push(bar)`. its just nicer that way
allow components to access parent model on same basis as JavaScript functions can access variables in outer scope
rebuilt