 
 public class Copier {
 
-	private static function getCopyableFieldsOfType(type:Type):Vector.<Field> {
+	private static function getCopyableFieldsOfType(type:Type, foundFieldsMap:Dictionary):Vector.<Field> {
 		const result:Vector.<Field> = new Vector.<Field>();
 
 		var variable:Variable;

	}

	dolly_internal static function findCopyableFieldsForType(type:Type):Vector.<Field> {
		var result:Vector.<Field> = getCopyableFieldsOfType(type);

		var superType:Type;
		var superTypeCopyableFields:Vector.<Field>;

		for each(var superTypeName:String in type.extendsClasses) {
			superType = Type.forName(superTypeName);
			superTypeCopyableFields = getCopyableFieldsOfType(superType);
			if (superTypeCopyableFields.length > 0) {
				result = result.concat(superTypeCopyableFields);
			}


import dolly.core.dolly_internal;
import dolly.core.metadata.MetadataName;

import flash.utils.Dictionary;

import org.as3commons.reflect.Accessor;
import org.as3commons.reflect.AccessorAccess;
