public void Deserialize(MySpace.Common.IO.IPrimitiveReader reader, int version)
		{
			if (reader.ReadBoolean())
			{
				int groupsCount = reader.ReadInt32();
				ErrorQueues = new Dictionary<string, Dictionary<string, MessageQueue>>(groupsCount);
				for (int i = 0; i < groupsCount; i++)
				{
					string group = reader.ReadString();
					if(reader.ReadBoolean())
					{
						int serviceCount = reader.ReadInt32();
						Dictionary<string, MessageQueue> groupQueues = new Dictionary<string, MessageQueue>(serviceCount);
						for (int j = 0; j < serviceCount; j++)
						{
							string serviceName = reader.ReadString();
							groupQueues.Add(serviceName, reader.Read<MessageQueue>());
						}
						ErrorQueues.Add(group, groupQueues);
					}					
				}
			}
		}
		public void Deserialize(MySpace.Common.IO.IPrimitiveReader reader, int version)
		{
			//TODO figure out if this reverses the order of the queue
			_enabled = reader.ReadBoolean();
			_maxCount = reader.ReadInt32();
			_itemsPerDequeue = reader.ReadInt32();
			if (reader.ReadBoolean())
			{
				int count = reader.ReadInt32();
				_inMessageQueue = new Queue<SerializedRelayMessage>(count);
				for (int i = 0; i < count; i++)
				{
					_inMessageQueue.Enqueue(reader.Read<SerializedRelayMessage>());
				}
			}
		}