Help cloning DisplayObject, trouble with Transform

Hey guys, I’ve been working on this forever and can’t figure out exactly what i’m doing wrong. I’m trying to duplicate my custom class called “Picture” but the only cloning that is actually happening is on the DisplayObject property within the class. I am using the ByteArray method.

I kept adding the registerClassAlias because of coersion errors, and once I added the alias for Transform, I got this error:

ArgumentError: Error #1063: Argument count mismatch on flash.geom::Transform$iinit(). Expected 1, got 0.
    at flash.utils::ByteArray/readObject()
.
.
.

My actual class code is as follows:

package {
    
    import flash.display.MovieClip;
    import flash.display.Sprite;
    import flash.events.*;
    import flash.utils.*;
    import flash.display.DisplayObject;
    import flash.display.Loader;
    import flash.utils.ByteArray;
    import flash.net.registerClassAlias;
    import flash.geom.Transform;
    
    public class Picture extends MovieClip {

            
        public var pic:DisplayObject;
        private var desc:String;
        public var id:int;
        
    
        
        public function Picture(p:DisplayObject, t:String, i:int){
            pic = p;
            desc = t;
            id = i;
            this.addChild(pic);        
        }
        
        public function getDesc():String{
            return desc;
        }
                
        public function clone():Picture {

            registerClassAlias("a.a.a", DisplayObject);
            registerClassAlias("a.a.b", Loader);
            registerClassAlias("a.a.c", Transform);
            
            var t:ByteArray = new ByteArray();
            t.writeObject(pic);
            t.position = 0;
            return new Picture(DisplayObject(t.readObject()), desc, id);
        }
        
    }
    
    
    
}

Does anybody have ANY idea what this means or how I can fix it? Thanks a bunch, everyone.