Implement new event model;