Update #5: Add AbstractEvent and EventInterface
Close #5: Add EventReceiver and related components
Close #14: Add MessageFactory and interface