Adds support for adding custom run listeners
Fixes #438