         It is subject to _.memoize, so it will be called only once per connection
         ###
         url = @_get_connection_url()
-        logger.debug("Opening new vent connection", {url, @options})
         amqp.connect(url).then (conn) =>
-            logger.debug('amqp connection created', {conn})
+            logger.debug('Created new amqp connection', {conn})
             conn.on 'error', (err) ->
-                    logger.error("Connection error", {err, url})
+                    logger.error({err}, "Connection error", {url})
                     @emit('error', err)
                     process.exit(1)
-                    #@_reset_connection()
+                    @_reset_connection()
                 .on 'close', ->
                     logger.info('Connection closed', {url})
                     if not @_connect.has()

                partition_exch_options =
                    autoDelete: if options.autoDelete? then options.autoDelete else true
                steps.concat([
                    ch.assertExchange(partition_exch_name, 'x-consistent-hash')
                    ch.bindExchange(partition_exch_name, exch_options, topic)
                ])
                topic = '10' # for x-consistent hash echange topic is a weight

            options = {}

        event_options = @_parse_event(event)
        options = _.extend({}, @options, event_options, options)

        @_get_publishing_channel()
            .then(@_assert_exchange.bind(@, options))
            .done((channel) =>
                {content, properties} = @_encode_message(payload)
                message_options = _.chain(options)
                    .pick('mandatory', 'persistent', 'deliveryMode', 'expiration', 'CC')
                    .extend(properties)
                    .value()
                if not channel.publish(options.channel, options.topic, content, message_options) and cb?
                    logger.debug('Overloaded')
                    return channel.once('drain', cb)
                cb?()
            , (err) ->
                logger.error({err}, 'Error when trying to open publishing channel')
                cb(err) if cb?
            )
        @

    subscribe: (event, options, listener) ->
