  * called the 'target'.
  *
  * For each qualifying instance variable of the target, the default
- * behaviour of DisplayInjector.inject is to search the
- * container for a child with the same name, and tries to cast it to the
- * variable's class.
- *
- * A qualifying instance variable is one that is public and has the
- * metadata tag <code>[Display]</code>.
+ * behaviour of DisplayInjector.inject is:
+ * <ul>
+ *   <li>Search the container for a child with the same name as the target
+ *       variable.</li>
+ *   <li>Cast it to the target variable class.</li>
+ *   <li>Assign it to the target variable.</li>
+ * </ul>
+ *
+ * A qualifying instance variable is one that is publically accessible and
+ * has the metadata tag <code>[Display]</code>.
  *
  * As an example, if a target instance has the following variable:
  *

    private static function injectProperty(property:XML, metadata:XML,
            source:DisplayObjectContainer, target:*):void
    {
        var args:Object = { name: null, wrapper: null };

        try {
            collectArgs(metadata, args);
            var displayPath:String = args.name || property.@name;
            var child:* = getChildByPath(source, displayPath);

            if (args.wrapper)
            {
                child = construct(args.wrapper, child);
            }

            target[property.@name] = child;

        {
            var key:String = arg.@key;
            var value:String = arg.@value;

            // [Metadata(paramName="string")]
            // becomes <arg key="paramName" value="string" />

            // but...

            // [Metadata(bareword)]
            // becomes <arg key="" value="bareword" />

            // so swap them
            if (key == "")
            {
                key = value;
                value = "";
            }

            if (argDict.hasOwnProperty(key))
            {
                argDict[key] = value;
