abstracted events and model updates, need to optimize scope bindings