public object Deserialize(Stream stream){
			int count = (int)ZigZag.DeserializeUInt32 (stream);
			var types = new TypeMap ();
			while(count-- != 0) {
				uint tag = ZigZag.DeserializeUInt32 (stream);
				var typeName = stream.ReadString ();
				var type = this.typeNames.GetType (typeName);
				types.Add(tag, typeName, type);
			}	
			return types;
		}
		public UnknownTypeSerializer (Serializers serializer, TypeMap type)
		{ 
			this.serializer = serializer;
			this.map = type;
		}
		public MultiTypeMap (TypeMap types)
		{
			this.types = types;
		}
		public TypeMapSerializer(TypeMap typeNames){
			this.typeNames = typeNames;
		}