strip out unused component/events, refactor to events driven logic