Added ComponentProperties
Refactored EventBus API. This will break the build until I refactor the implementation.
Extracted some utility methods to a new class