made a declarative interface on top of the event based on for controls