 #   @param [Any] default_value the default value. Can be a value, string or ko.observable
 #   @return [ko.observable] the constructor does not return 'this' but a ko.observable
 #
-# @method .formattedObservable(format, arg1, arg2, ...)
+# @method .formattedObservable(format, arg1, arg2, etc)
 #   Factory to create a new kb.FormattedObservable. See {kb.FormattedObservable#constructor} for information on options. If you are using knockback-core or knockback-core-stack, you can include this from the lib/knockback-formatting component.
 #   @param [String|ko.observable] format the format string. Format: `"{0} and {1}"` where `{0}` and `{1}` would be synchronized with the arguments (eg. "Bob and Carol" where `{0}` is Bob and `{1}` is Carol)
 #   @param [Array] args arguments to be passed to the kb.LocaleManager's get() method

    return

  # Releases and clears all of the keys on an object using the conventions of release(), destroy(), dispose() without releasing the top level object itself.
  @releaseKeys = (obj) ->
    ((obj[key] = null; kb.release(value)) if (key isnt '__kb') and kb.isReleaseable(value)) for key, value of obj
    return


  # @example
  #   var todos = kb.collectionObservable(collection);
  #   kb.utils.release(todos); todos = null;
  @release: (obj) ->
    return unless kb.isReleaseable(obj)

    # release array's items
