Adding BlockEvent abstract class

Adding a base `BlockEvent` interface.