 	public class VCard extends EventDispatcher
 	{
 		/**
-		 *
-		 * @default
+		 * VCard cache indexed by the jid or the user
 		 */
 		private static var cache:Object = {};
 
 		/**
 		 * Flush the vcard cache every 6 hours
-		 * @default
 		 */
 		private static var cacheFlushTimer:Timer = new Timer( 6 * 60 * 60 * 1000, 0 );
 
 		/**
-		 *
-		 * @default
+		 * Queue of the pending requests
 		 */
 		private static var requestQueue:Array = [];
 
 		/**
-		 *
-		 * @default
+		 * Timer to prosess the queue
 		 */
 		private static var requestTimer:Timer;
 
 		/**
 		 *
-		 * @default
 		 */
 		public var birthDay:Date;
 
 		/**
 		 *
-		 * @default
 		 */
 		public var company:String;
 
 		/**
 		 *
-		 * @default
 		 */
 		public var department:String;
 
 		/**
 		 *
-		 * @default
 		 */
 		public var email:String;
 
 		/**
 		 *
-		 * @default
 		 */
 		public var firstName:String;
 
 		/**
 		 *
-		 * @default
 		 */
 		public var fullName:String;
 
 		/**
 		 *
-		 * @default
 		 */
 		public var gender:String;
 
 		/**
 		 *
-		 * @default
 		 */
 		public var homeAddress:String;
 
 		/**
 		 *
-		 * @default
 		 */
 		public var homeCellNumber:String;
 
 		/**
 		 *
-		 * @default
 		 */
 		public var homeCity:String;
 
 		/**
 		 *
-		 * @default
 		 */
 		public var homeCountry:String;
 
 		/**
 		 *
-		 * @default
 		 */
 		public var homeFaxNumber:String;
 
 		/**
 		 *
-		 * @default
 		 */
 		public var homePagerNumber:String;
 
 		/**
 		 *
-		 * @default
 		 */
 		public var homePostalCode:String;
 
 		/**
 		 *
-		 * @default
 		 */
 		public var homeStateProvince:String;
 
 		/**
 		 *
-		 * @default
 		 */
 		public var homeVoiceNumber:String;
 
 		/**
 		 *
-		 * @default
 		 */
 		public var jid:UnescapedJID;
 
 		/**
 		 *
-		 * @default
 		 */
 		public var lastName:String;
 
 		/**
 		 *
-		 * @default
 		 */
 		public var loaded:Boolean = false;
 
 		/**
 		 *
-		 * @default
 		 */
 		public var maritalStatus:String;
 
 		/**
 		 *
-		 * @default
 		 */
 		public var middleName:String;
 
 		/**
 		 *
-		 * @default
 		 */
 		public var namePrefix:String;
 
 		/**
 		 *
-		 * @default
 		 */
 		public var nameSuffix:String;
 
 		/**
 		 *
-		 * @default
 		 */
 		public var nickname:String;
 
 		/**
 		 *
-		 * @default
 		 */
 		public var otherName:String;
 
 		/**
 		 *
-		 * @default
 		 */
 		public var title:String;
 
 		/**
 		 *
-		 * @default
 		 */
 		public var url:String;
 


		/**
		 *
		 * @default
		 */
		public var workAddress:String;

		/**
		 *
		 * @default
		 */
		public var workCellNumber:String;

		/**
		 *
		 * @default
		 */
		public var workCity:String;

		/**
		 *
		 * @default
		 */
		public var workCountry:String;

		/**
		 *
		 * @default
		 */
		public var workFaxNumber:String;

		/**
		 *
		 * @default
		 */
		public var workPagerNumber:String;

		/**
		 *
		 * @default
		 */
		public var workPostalCode:String;

		/**
		 *
		 * @default
		 */
		public var workStateProvince:String;

		/**
		 *
		 * @default
		 */
		public var workVoiceNumber:String;

		/**
		 *
		 * @default
		 */
		private var _avatar:DisplayObject;

		/**
		 *
		 * @default
		 */
		private var _imageBytes:ByteArray;

		/**
		 *
		 * @default
		 */
		private var contact:RosterItemVO;

		/**
		 * Don't call directly VCard, use a static method and add a callback.
		 */
		public function VCard()
		{

		private static function sendRequest( event:TimerEvent ):void
		{
			if ( requestQueue.length == 0 )
			{
				return;
			}
			var req:Object = requestQueue.pop();
			var connection:XMPPConnection = req.connection;
			var vcard:VCard = req.card;
			var user:RosterItemVO = vcard.contact;

