Resolves Issue #150: Refactor Listeners to use Factories