Changing EventDrivers to extend other EventDrivers and abstract
EventDrivers in place of using underlying events parameters.
This will improve speed and reliability
This will also simplify logic for EventDriver aware Events