Factory
Creates new instances of EventListener.
A new EventListener will be created for each code load attempt: there may be multiple instances for a single TreehouseApp due to hot reloading.
This factory will be closed when the TreehouseApp it belongs to is closed.