protected void writeExtendedFeatures (DependencyInstance instance, ObjectOutputStream out) 
	throws IOException {

	final int instanceLength = instance.length();

	for(int w1 = 0; w1 < instanceLength; w1++) {
	    for(int w2 = w1; w2 < instanceLength; w2++) {
		for(int w3 = w2+1; w3 < instanceLength; w3++) {
		    FeatureVector prodFV = new FeatureVector();
		    addTripFeatures(instance,w1,w2,w3,prodFV);
		    out.writeObject(prodFV.keys());
		}
	    }
	    for(int w2 = w1; w2 >= 0; w2--) {
		for(int w3 = w2-1; w3 >= 0; w3--) {
		    FeatureVector prodFV = new FeatureVector();
		    addTripFeatures(instance,w1,w2,w3,prodFV);
		    out.writeObject(prodFV.keys());
		}
	    }
	}
			
	out.writeInt(-3);
	
	for(int w1 = 0; w1 < instanceLength; w1++) {
	    for(int w2 = 0; w2 < instanceLength; w2++) {
		for(int wh = 0; wh < 2; wh++) {
		    if(w1 != w2) {
			FeatureVector prodFV = new FeatureVector();
			addSiblingFeatures(instance,w1,w2,wh == 0,prodFV);
			out.writeObject(prodFV.keys());
		    }
		}
	    }
	}
	
	out.writeInt(-3);
    }