More listener refactoring

Now they're configurable.