Oop

I re wrote all the classes . could someone find the error?
the UILoader is not displaying
no code is in the timeline and the Main is the document class.
thanks


package chromatic.load_files{
	import flash.display.MovieClip;
	import flash.display.Sprite;
	import fl.containers.UILoader;

	import chromatic.load_files.UIImageComponent;
	import chromatic.load_files.TLImageComponent;
	import chromatic.load_files.CBMajorComponent;
	import chromatic.load_files.CBMinorComponent;
	public class Main extends MovieClip {
		private var uiImageComponent:UIImageComponent;
		private var tlImageComponent:TLImageComponent;
		private var cbMajorComponent:CBMajorComponent;
		private var cbMinorComponent:CBMinorComponent;
		public function Main():void {
			init();
		}
		public function init():void {						
			cbMajorComponent=new CBMajorComponent();
			addChild(cbMajorComponent.cbMajor);
			
			cbMinorComponent=new CBMinorComponent();
			addChild(cbMinorComponent.cbMinor);			
		}
	}
}


package chromatic.load_files{
	import fl.controls.ComboBox;
	import flash.display.MovieClip;
	import flash.events.Event;
	import fl.data.DataProvider;
	import flash.net.URLLoader;
	import flash.net.URLRequest;
	import flash.net.URLRequest;
	import fl.containers.UILoader;
	public class CBMajorComponent extends MovieClip {

		public var cbMajor:ComboBox=new ComboBox();
		private var uiImageComponent:UIImageComponent;

		private var listURL:URLRequest=new URLRequest();
		private var dataLoader:URLLoader=new URLLoader();
		private var theXML:XML=new XML();

		private var arrayFile:Array=new Array("load_assets/keylist.xml");
		private var majorArray:Array=new Array

("CMajor","GMajor","DMajor","AMajor","EMajor",
		"BMajor","FSharpMajor","CSharpMajor","FMajor",
		"BFlatMajor","EFlatMajor","AFlatMajor",
		"DFlatMajor","GFlatMajor","CFlatMajor");

		public var key:String;
		public var fileName:String;
		private var evtIndex:Number;
		private var evtItem:String;
		private var sel:Number=-1;
		
		public function CBMajorComponent():void {			
			init();
		}
		private function init():void {
			fileName=arrayFile[0];
			setFileName(fileName);
			setupComponent(fileName);
		}
		private function setupComponent(fileName):void {
			this.fileName=fileName;			
			cbMajor=new ComboBox();
			cbMajor.setSize(200, 22);
			cbMajor.prompt = "Select a Major Key";
			cbMajor.editable=false;
			cbMajor.rowCount=15;
			cbMajor.width=110;
			cbMajor.move(0,0);
			cbMajor.x=-235;
			cbMajor.y=-150;			
			listURL=new URLRequest(fileName);			
			dataLoader.addEventListener(Event.COMPLETE,dataLoaded);
			dataLoader.load(listURL);			
			theXML=new XML(listURL);
			theXML.ignoreWhitespace=true;			
			cbMajor.addEventListener(Event.CHANGE, selectedName);
			cbMajor.addEventListener(Event.CHANGE,changeEvent);
		}
		private function dataLoaded(evt:Event):void {		
			theXML=XML(dataLoader.data);			
			for (var i:int=0; i<majorArray.length; i++) {
				key=majorArray*;						

		
				cbMajor.addItem({label:(theXML.key[key].keyName)});
			}
		}
		private function selectedName(evt:Event):void {
			evtIndex=evt.target.selectedIndex;
			key=majorArray[evtIndex];
			setKey(key);
			uiImageComponent=new UIImageComponent(fileName,key);
			addChild(uiImageComponent.uiImage);			
		}
		public function changeEvent(evt:Event):void {
			trace(" You selected a key");
		}
		public function setFileName(fileName):void {
			this.fileName=fileName;
		}
		public function getFileName():String {
			return fileName;
		}
		public function setKey(key):void {
			this.key=key;
		}
		public function getKey():String {
			return key;
		}
	}
}



package chromatic.load_files{
	import fl.containers.UILoader;
	import flash.display.MovieClip;
	import flash.events.Event;
	import fl.data.DataProvider;
	import flash.net.URLLoader;
	import flash.net.URLRequest;
	import flash.net.*;

	public class UIImageComponent extends MovieClip {
		public var uiImage:UILoader=new UILoader();
		public var dp:DataProvider=new DataProvider();
		private var dataLoader:URLLoader=new URLLoader();
		private var theXML:XML=new XML();
		private var listURL:URLRequest=new URLRequest();
		private var arrayImage:Array=new Array();

		private var singleImage:String;
		public var key:String;
		public var fileName:String;
		private var sourceValue:String=null;
		private var evtIndex:int;
		private var evtName:String;
		private var sel:Number=-1;
		private var xmlList:XMLList;
		public function UIImageComponent(fileName,key):void {
			this.fileName=fileName;
			this.key=key;
			setFileName(fileName);
			setKey(key);
			trace("in tlImageComponent fileName= "+fileName);//traces correct 

file
			trace("in tlImageComponent key= "+key);//traces correct key 
			init(fileName,key);
		}
		public function init(fileName,key):void {
			this.fileName=fileName;
			this.key=key;
			setupComponent(fileName,key);
		}
		public function setupComponent(fileName,key):void {
			this.fileName=fileName;
			this.key=key;
			uiImage.x=100;
			uiImage.y=-20;
			uiImage.width=190;
			uiImage.height=200;
			listURL=new URLRequest(getFileName());
			dataLoader.addEventListener(Event.COMPLETE,dataLoaded);
			dataLoader.load(listURL);
			theXML=new XML(listURL);
			theXML.ignoreWhitespace=true;
		}
		function dataLoaded(evt:Event):void {
			theXML=XML(dataLoader.data);			
			trace("theXML "+theXML);//traces the correct XML file
			sourceValue=theXML.key[getKey()].swfFile;
			var request:URLRequest=new URLRequest(sourceValue);
			uiImage.load(request);			
			uiImage.source=sourceValue;
		}
		/*
		private function selectedName():void {
		}
		*/
		private function changeEvent(evt:Event):void {
			trace(" You selected a key");
		}
		public function setFileName(fileName):void {
			this.fileName=fileName;
		}
		public function getFileName():String {
			return fileName;
		}
		public function setKey(key):void {
			this.key=key;
		}
		public function getKey():String {
			return key;
		}
	}
}