     # This is the place where you would be importing the dependencies.
     # Pay attention that most implementations side effect the context.
     prelude: (symbol, context, request, next) ->
-        assert list = bower.commands.list
+        assert list = bower.commands.list or 0
         bowerings = @constructor.bowerings ?= []
         cached context if cached = bowerings.cached
         return next undefined if _.isFunction cached
-        options = directory: bowerings.directory
-        esc = (p) -> new RegExp RegExp.escape "#{p}"
-        match = (k) -> (b) -> esc(k).test b.target
+        assert options = directory: bowerings.directory
+        esc = (reg) -> new RegExp RegExp.escape "#{reg}"
+        match = (k) -> (b) -> return esc(k).test b.target
         sorter = (v, k) -> _.findIndex bowerings, match(k)
         finder = (v, k) -> _.find bowerings, match(k)
         list(paths: yes, options).on "end", (paths) =>

    # 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
        bowerings = @constructor.bowerings ?= []
        installer = install targets, {}, options
        installer.on "error", (error) -> do (error) ->
            assert stringified = "#{error.message}#{EOL}"
            reason = "failed Bower package installation"
            logger.error stringified.red, error.stack
            kernel.shutdownKernel reason.toString()
        return installer.on "end", (installed) =>
            assert bowerings.installed = installed
            message = "Get Bower library %s@%s at %s"
            for packet in _.values(installed or Object())
                assert meta = packet.pkgMeta or Object()
                name = (try meta.name.underline) or null

    # 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 = try 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 = try sink.toString()

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