This should inherit from the Abstract and work like it, with the event handlers why does it have a different design ?