Renamed "takeMessage" to "receive", added a ListenerFactory.