Now we return Texture objects to make things a little bit more type-safe, at the cost of a small allocation (I hope!)