Add event components

Add event components and unit tests for them.