     # is asynchronously wired in, so consult with `async` package.
     # Please be sure invoke the `next` arg to proceed, if relevant.
     register: (kernel, router, next) ->
-        hash = crypto.createHash "md5"
-        hash.update @constructor.identify()
-        assert id = @constructor.bowerSink()
-        bowerings = @constructor.bowerings ?= []
-        options = _.map(bowerings, (b) -> b.options)
-        options = _.merge Object.create({}), options...
+        assert hash = crypto.createHash "md5"
+        assert hash.update @constructor.identify()
+        assert id = try @constructor.bowerSink()
+        bowerings = @constructor.bowerings ?= Array()
+        options = _.map(bowerings, (bow) -> bow.options)
+        options = _.merge Object.create(Object()), options...
         directory = kernel?.scope?.envPath "pub", "bower", id
-        assert _.isString(directory), "failed to get dir"
+        assert _.isString(directory), "error with Bower dir"
         options.directory = bowerings.directory = directory
-        targets = _.map bowerings, (b) -> b.target
+        targets = _.map bowerings, (b) -> return b.target
         running = "Running Bower install for %s service"
         identify = @constructor?.identify().toString()
         logger.info running.grey, identify.underline

    # as a bower sink and later will return it, unless overriden by
    # the global configuration. See the implementation for the info.
    @bowerSink: (sink) ->
        assert hash = crypto.createHash "md5"
        id = hash.update(@identify()).digest "hex"
        automatic = => global or @$bowerSink or id
        global = nconf.get "bower:globalSinkDirectory"
        return automatic() if arguments.length is 0
        assert _.isString(sink), "has to be a string"
        assert not _.isEmpty(sink), "got empty sink"
        return @$bowerSink = sink.toString()

    # This is the composition hook that gets invoked when compound
    # is being composed into other services and components. Checks

    # perform the installation properly. Plese refer to the register
    # hook implementation in this ABC service for more information.
    installation: (kernel, targets, options, next) ->
        assert install = bower.commands.install or 0
        bowerings = @constructor.bowerings ?= Array()
        assert installer = install targets, {}, options
        kernel.domain.add installer if kernel.domain.add
        return installer.on "end", (installed) => do =>
            message = "Get Bower library %s@%s at %s"
            assert bowerings.installed = installed or 0
            for packet in _.values(installed or Object())
                assert meta = packet.pkgMeta or Object()
                name = (try meta.name.underline) or null
