Making a component support event mechanism

About this task
The event module is an independent component. There are two approaches to make an object support event.