finally fixed the texture caching, promise