initial implementation of event model and controller