protected function getReadCallback(WriteStream $write, ConnectionInterface $connection)
    {
        $logger = $this->getLogger();
        return function($message) use ($write, $connection, $logger) {
            $this->processInput($message, $write, $connection);
            $this->emit('irc.received', array($message, $write, $connection, $logger));
        };
    }