anchor.diff:  
     List colors; // one-to-one vertex colors, used in ParticleSystem, Line and Ribbon
     List materials;
  -  List faces;
  +  List<Face> faces;
   
     List faceUvs;
     List<List> faceVertexUvs;
  
positive.code: 
    void computeCentroids() {
  
      faces.forEach((face) {
  
        face.centroid.setValues( 0.0, 0.0, 0.0 );
  
        if ( face is Face3 ) {
          face.centroid.add( vertices[ face.a ] );
          face.centroid.add( vertices[ face.b ] );
          face.centroid.add( vertices[ face.c ] );
          face.centroid /= 3.0;
        } else if ( face is Face4 ) {
          Face4 face4 = face;
          face4.centroid.add( vertices[ face4.a ] );
          face4.centroid.add( vertices[ face4.b ] );
          face4.centroid.add( vertices[ face4.c ] );
          face4.centroid.add( vertices[ face4.d ] );
          face4.centroid /= 4.0;
        }
  
      });
    }
  
negative.code:       face = this.faces[ f ];
        UV uv = faceVertexUvs[ 0 ][ f ]; // use UV layer 0 for tangents
  
        // TODO - Come up with a way to handle an arbitrary number of vertexes
        var triangles = [];
        if ( face.size == 3 ) {
          triangles.add([0, 1, 2]);
        } else if ( face.size == 4 ) {
          triangles.add([0, 1, 3]);
          triangles.add([1, 2, 3]);
        }
  
        triangles.forEach((t) {
          handleTriangle( this, face.indices[t[0]], face.indices[t[1]], face.indices[t[2]], t[0], t[1], t[2] );
        });
      }
  
      faces.forEach((face) {
  
  