 ###
 module.exports.push required: true, handler: ->
   return if @registered 'hconfigure'
-  @register 'hconfigure', (options, callback) ->
+  @register 'hconfigure', (options) ->
     fnl_props = {}
     org_props = {}
     updated = 0
     options.source ?= options.destination
-    do_read_source = ->
+    @call (_, callback) ->
       options.log? "Read source properties from '#{options.source}'"
       # Populate org_props and, if merge, fnl_props
       properties.read options.ssh, options.source, (err, props) ->

        else if Array.isArray v
          fnl_props[k] = v.join ','
        else if typeof v isnt 'string'
          return callback Error "Invalid value type '#{typeof v}' for property '#{k}'"
        else fnl_props[k] = v
      do_compare()
    do_compare = ->
      keys = {}
      for k in Object.keys(org_props) then keys[k] = true
      for k in Object.keys(fnl_props) then keys[k] = true unless keys[k]?

        continue unless org_props[k] isnt fnl_props[k]
        options.log? "Property '#{k}' was '#{org_props[k]}' and is now '#{fnl_props[k]}'"
        updated = true
    @call ->
      options.content = properties.stringify fnl_props
      options.source = null
      @write options
