Change model texture in runtime?

I create all my model in factory. But when i changed texture for one model, it is changed for all models. :thinking: Can someone explain why?

local delta_x=1
	local delta_z=1
	local wall_pos= vmath.vector3(0)
	
	local textures = {resource.load("/assets/img/texture/wall1.texturec")
	,resource.load("/assets/img/texture/wall2.texturec")
	,resource.load("/assets/img/texture/wall3.texturec")
	,resource.load("/assets/img/texture/wall4.texturec")}
	
	for y=1,map.get_height() do
		for x=1,map.get_width() do
			if(map.is_blocking(x,y)) then 
    	  	            wall_pos.x = (x-1) * delta_x + 0.5
    	  	            wall_pos.z = -(y-1) * delta_z - 0.5    
    	  	
			    local wall = factory.create("#factory", wall_pos)
			    local url = msg.url(wall)
			    url.fragment = "model"
			    local resource_path = go.get(url, "texture0")
			    print("texture_id:"..map.get_cell(x,y).texture)
			   resource.set(resource_path, textures[map.get_cell(x,y).texture])   
                        end
                 end
           end

All model will have texture 3 .Logs:

...
DEBUG:SCRIPT: texture_id:1
DEBUG:SCRIPT: texture_id:3