don't use local state for model/data changes.

this should be a bit more like it's meant to be used.
support specifying initial data for keywords.