Refactored to include BaseEvent
Refactored to include BaseLink