start with events and state mashine