Added addListener without an executor to ListenerHelper
Also thought I would be consistent and avoid catching RuntimeException and instead just catch throwable (in case we get an error or something)