code: public void evolve(SchemaOperation op) {
  		//TODO this is horrible!!!
  		ArrayList<Object> fV = new ArrayList<Object>(Arrays.asList(fixedValues));
  		ArrayList<Object> vV = new ArrayList<Object>(Arrays.asList(variableValues));
  		
  		//TODO resize only once to correct size
  		if (op instanceof SchemaOperation.SchemaFieldDefine) {
  			SchemaOperation.SchemaFieldDefine op2 = (SchemaFieldDefine) op;
  			int fieldId = op2.getField().getFieldPos();
  			fV.add(fieldId, PersistentSchemaOperation.getDefaultValue(op2.getField()));
  			vV.add(fieldId, null);
  		}
  		if (op instanceof SchemaOperation.SchemaFieldDelete) {
  			SchemaOperation.SchemaFieldDelete op2 = (SchemaFieldDelete) op;
  			int fieldId = op2.getField().getFieldPos();
  			fV.remove(fieldId);
  			vV.remove(fieldId);
  		}
  		fixedValues = fV.toArray(fixedValues);
  		variableValues = vV.toArray(variableValues);
  	}
docs: Schema evolution of in-memory objects, operation by operation.
  @param op Schema operation object