Texture class overhaul