refactored to allow independent texture generation with TextureGenerator().
..using the internal gui models that aren't so internel anymore :)