anchor.diff:            index(x, y), index(x + 1, y), index(x + 1, y + 1), index(x, y + 1));
       }
     }
  -  // TODO: add uv support
  -  //gb.EnableAttribute(aTextureCoordinates);
  -  //gb.AddAttributesVector2(aTextureCoordinates, uvs);
  +  gb.EnableAttribute(aTextureCoordinates);
  +  gb.AddAttributesVector2(aTextureCoordinates, uvs);
     gb.EnableAttribute(aNormal);
     gb.AddAttributesVector3(aNormal, normals);
     return gb;
  
positive.code: 
    for (int x = 0; x <= xstrips; ++x) {
      for (int y = 0; y <= ystrips; ++y) {
        vertices[index(x, y)] =
            new VM.Vector3(x * xdelta - xoffset, y * ydelta - yoffset, 0.0);
        normals[index(x, y)] = normal;
      }
    }
    GeometryBuilder gb = new GeometryBuilder();
  
negative.code:       new List<VM.Vector3>((xstrips + 1) * (ystrips + 1));
    List<VM.Vector3> normals =
        new List<VM.Vector3>((xstrips + 1) * (ystrips + 1));
    List<VM.Vector2> uvs = new List<VM.Vector2>((xstrips + 1) * (ystrips + 1));
  
    int index(int x, int y) {
      return x * (xstrips + 1) + y;
  