Refactoing: now the overriding CustomTexture class can control how shapes are drawn