engine/collector: Refactor implementation to use listener for engine events