added surface and texture classes