Index: /trunk/src/com/romraider/logger/external/zt2/plugin/ZT2DataItemImpl.java
===================================================================
--- /trunk/src/com/romraider/logger/external/zt2/plugin/ZT2DataItemImpl.java	(revision 339)
+++ /trunk/src/com/romraider/logger/external/zt2/plugin/ZT2DataItemImpl.java	(revision 340)
@@ -19,4 +19,7 @@
 
 package com.romraider.logger.external.zt2.plugin;
+
+import com.romraider.logger.ecu.definition.EcuDataConvertor;
+import com.romraider.logger.ecu.definition.ExternalDataConvertorImpl;
 
 public final class ZT2DataItemImpl implements ZT2DataItem {
@@ -42,7 +45,7 @@
     }
 
-    public String getUnits() {
-        return units;
-    }
+//    public String getUnits() {
+//        return units;
+//    }
 
     public double getData() {
@@ -53,3 +56,18 @@
         this.raw = raw;
     }
+
+//	public String getFormat() {
+//		return "0.##";
+//	}
+//
+//	public String getExpression() {
+//		return "x";
+//	}
+
+	public EcuDataConvertor[] getConvertors() {
+		String expression = "x";
+		String format = "0.##";
+        EcuDataConvertor[] convertors = {new ExternalDataConvertorImpl(this, units, expression, format)};
+		return convertors;
+	}
 }
Index: /trunk/src/com/romraider/logger/external/aem/plugin/AemDataItem.java
===================================================================
--- /trunk/src/com/romraider/logger/external/aem/plugin/AemDataItem.java	(revision 339)
+++ /trunk/src/com/romraider/logger/external/aem/plugin/AemDataItem.java	(revision 340)
@@ -20,4 +20,6 @@
 package com.romraider.logger.external.aem.plugin;
 
+import com.romraider.logger.ecu.definition.EcuDataConvertor;
+import com.romraider.logger.ecu.definition.ExternalDataConvertorImpl;
 import com.romraider.logger.external.core.DataListener;
 import com.romraider.logger.external.core.ExternalDataItem;
@@ -34,7 +36,7 @@
     }
 
-    public String getUnits() {
-        return "AFR";
-    }
+//    public String getUnits() {
+//        return "AFR";
+//    }
 
     public double getData() {
@@ -45,3 +47,19 @@
         this.data = data;
     }
+
+//	public String getFormat() {
+//		return "0.##";
+//	}
+//
+//	public String getExpression() {
+//		return "x";
+//	}
+
+	public EcuDataConvertor[] getConvertors() {
+		String units = "AFR";
+		String expression = "x";
+		String format = "0.##";
+        EcuDataConvertor[] convertors = {new ExternalDataConvertorImpl(this, units, expression, format)};
+		return convertors;
+	}
 }
Index: /trunk/src/com/romraider/logger/external/innovate/lm2/mts/plugin/Lm2MtsDataItem.java
===================================================================
--- /trunk/src/com/romraider/logger/external/innovate/lm2/mts/plugin/Lm2MtsDataItem.java	(revision 339)
+++ /trunk/src/com/romraider/logger/external/innovate/lm2/mts/plugin/Lm2MtsDataItem.java	(revision 340)
@@ -20,4 +20,6 @@
 package com.romraider.logger.external.innovate.lm2.mts.plugin;
 
+import com.romraider.logger.ecu.definition.EcuDataConvertor;
+import com.romraider.logger.ecu.definition.ExternalDataConvertorImpl;
 import com.romraider.logger.external.core.DataListener;
 import com.romraider.logger.external.core.ExternalDataItem;
@@ -34,7 +36,7 @@
     }
 
-    public String getUnits() {
-        return "AFR";
-    }
+//    public String getUnits() {
+//        return "AFR";
+//    }
 
     public double getData() {
@@ -45,3 +47,19 @@
         this.data = data;
     }
+
+//	public String getFormat() {
+//		return "0.##";
+//	}
+//
+//	public String getExpression() {
+//		return "x";
+//	}
+
+	public EcuDataConvertor[] getConvertors() {
+		String units = "AFR";
+		String expression = "x";
+		String format = "0.##";
+        EcuDataConvertor[] convertors = {new ExternalDataConvertorImpl(this, units, expression, format)};
+		return convertors;
+	}
 }
Index: /trunk/src/com/romraider/logger/external/innovate/generic/serial/plugin/InnovateDataItem.java
===================================================================
--- /trunk/src/com/romraider/logger/external/innovate/generic/serial/plugin/InnovateDataItem.java	(revision 339)
+++ /trunk/src/com/romraider/logger/external/innovate/generic/serial/plugin/InnovateDataItem.java	(revision 340)
@@ -20,4 +20,6 @@
 package com.romraider.logger.external.innovate.generic.serial.plugin;
 
+import com.romraider.logger.ecu.definition.EcuDataConvertor;
+import com.romraider.logger.ecu.definition.ExternalDataConvertorImpl;
 import com.romraider.logger.external.core.DataListener;
 import com.romraider.logger.external.core.ExternalDataItem;
@@ -34,7 +36,7 @@
     }
 
-    public String getUnits() {
-        return "AFR";
-    }
+//    public String getUnits() {
+//        return "AFR";
+//    }
 
     public double getData() {
@@ -45,3 +47,19 @@
         this.data = data;
     }
+
+//	public String getFormat() {
+//		return "0.##";
+//	}
+//
+//	public String getExpression() {
+//		return "x";
+//	}
+
+	public EcuDataConvertor[] getConvertors() {
+		String units = "AFR";
+		String expression = "x";
+		String format = "0.##";
+        EcuDataConvertor[] convertors = {new ExternalDataConvertorImpl(this, units, expression, format)};
+		return convertors;
+	}
 }
Index: /trunk/src/com/romraider/logger/external/plx/plugin/PlxDataItemImpl.java
===================================================================
--- /trunk/src/com/romraider/logger/external/plx/plugin/PlxDataItemImpl.java	(revision 339)
+++ /trunk/src/com/romraider/logger/external/plx/plugin/PlxDataItemImpl.java	(revision 340)
@@ -20,4 +20,6 @@
 package com.romraider.logger.external.plx.plugin;
 
+import com.romraider.logger.ecu.definition.EcuDataConvertor;
+import com.romraider.logger.ecu.definition.ExternalDataConvertorImpl;
 import com.romraider.logger.external.plx.io.PlxSensorType;
 import com.romraider.logger.external.plx.io.PlxSensorUnits;
@@ -46,7 +48,7 @@
     }
 
-    public String getUnits() {
-        return units;
-    }
+//    public String getUnits() {
+//        return units;
+//    }
 
     public double getData() {
@@ -57,3 +59,18 @@
         this.raw = raw;
     }
+
+//	public String getFormat() {
+//		return "0.##";
+//	}
+//
+//	public String getExpression() {
+//		return "x";
+//	}
+
+	public EcuDataConvertor[] getConvertors() {
+		String expression = "x";
+		String format = "0.##";
+        EcuDataConvertor[] convertors = {new ExternalDataConvertorImpl(this, units, expression, format)};
+		return convertors;
+	}
 }
Index: /trunk/src/com/romraider/logger/external/aem2/plugin/AemDataItem.java
===================================================================
--- /trunk/src/com/romraider/logger/external/aem2/plugin/AemDataItem.java	(revision 339)
+++ /trunk/src/com/romraider/logger/external/aem2/plugin/AemDataItem.java	(revision 340)
@@ -20,4 +20,6 @@
 package com.romraider.logger.external.aem2.plugin;
 
+import com.romraider.logger.ecu.definition.EcuDataConvertor;
+import com.romraider.logger.ecu.definition.ExternalDataConvertorImpl;
 import com.romraider.logger.external.core.DataListener;
 import com.romraider.logger.external.core.ExternalDataItem;
@@ -27,14 +29,14 @@
 
     public String getName() {
-        return "AEM UEGO Lambda [19200]";
+        return "AEM UEGO [19200 baud]";
     }
 
     public String getDescription() {
-        return "AEM UEGO Lambda data";
+        return "AEM UEGO Wideband data";
     }
 
-    public String getUnits() {
-        return "Lambda";
-    }
+//    public String getUnits() {
+//        return "Lambda";
+//    }
 
     public double getData() {
@@ -45,3 +47,19 @@
         this.data = data;
     }
+
+//	public String getFormat() {
+//		return "0.##";
+//	}
+//
+//	public String getExpression() {
+//		return "x";
+//	}
+
+	public EcuDataConvertor[] getConvertors() {
+		String units = "Lambda";
+		String expression = "x";
+		String format = "0.##";
+        EcuDataConvertor[] convertors = {new ExternalDataConvertorImpl(this, units, expression, format)};
+		return convertors;
+	}
 }
Index: /trunk/src/com/romraider/logger/external/mrf/plugin/MrfDataItem.java
===================================================================
--- /trunk/src/com/romraider/logger/external/mrf/plugin/MrfDataItem.java	(revision 339)
+++ /trunk/src/com/romraider/logger/external/mrf/plugin/MrfDataItem.java	(revision 340)
@@ -20,4 +20,6 @@
 package com.romraider.logger.external.mrf.plugin;
 
+import com.romraider.logger.ecu.definition.EcuDataConvertor;
+import com.romraider.logger.ecu.definition.ExternalDataConvertorImpl;
 import com.romraider.logger.external.core.DataListener;
 import com.romraider.logger.external.core.ExternalDataItem;
@@ -41,7 +43,7 @@
     }
 
-    public String getUnits() {
-        return units;
-    }
+//    public String getUnits() {
+//        return units;
+//    }
 
     public double getData() {
@@ -52,3 +54,18 @@
         this.data = data;
     }
+
+//	public String getFormat() {
+//		return "0.##";
+//	}
+//
+//	public String getExpression() {
+//		return "x";
+//	}
+
+	public EcuDataConvertor[] getConvertors() {
+		String expression = "x";
+		String format = "0.##";
+        EcuDataConvertor[] convertors = {new ExternalDataConvertorImpl(this, units, expression, format)};
+		return convertors;
+	}
 }
Index: /trunk/src/com/romraider/logger/external/core/ExternalDataItem.java
===================================================================
--- /trunk/src/com/romraider/logger/external/core/ExternalDataItem.java	(revision 339)
+++ /trunk/src/com/romraider/logger/external/core/ExternalDataItem.java	(revision 340)
@@ -20,4 +20,6 @@
 package com.romraider.logger.external.core;
 
+import com.romraider.logger.ecu.definition.EcuDataConvertor;
+
 public interface ExternalDataItem {
     String getName();
@@ -25,6 +27,12 @@
     String getDescription();
 
-    String getUnits();
+//    String getUnits();
+//
+//    String getFormat();
+//
+//    String getExpression();
 
     double getData();
+
+	EcuDataConvertor[] getConvertors();
 }
Index: /trunk/src/com/romraider/logger/external/fourteenpoint7/plugin/NawDataItem.java
===================================================================
--- /trunk/src/com/romraider/logger/external/fourteenpoint7/plugin/NawDataItem.java	(revision 339)
+++ /trunk/src/com/romraider/logger/external/fourteenpoint7/plugin/NawDataItem.java	(revision 340)
@@ -20,4 +20,6 @@
 package com.romraider.logger.external.fourteenpoint7.plugin;
 
+import com.romraider.logger.ecu.definition.EcuDataConvertor;
+import com.romraider.logger.ecu.definition.ExternalDataConvertorImpl;
 import com.romraider.logger.external.core.ExternalDataItem;
 import com.romraider.logger.external.core.RawDataListener;
@@ -32,10 +34,10 @@
 
     public String getDescription() {
-        return "14Point7 NAW_7S AFR data";
+        return "14Point7 NAW_7S Wideband data";
     }
 
-    public String getUnits() {
-        return "AFR";
-    }
+//    public String getUnits() {
+//        return "AFR";
+//    }
 
     public double getData() {
@@ -47,3 +49,19 @@
         this.bytes = bytes;
     }
+
+//	public String getFormat() {
+//		return "0.##";
+//	}
+//
+//	public String getExpression() {
+//		return "x";
+//	}
+
+	public EcuDataConvertor[] getConvertors() {
+		String units = "AFR";
+		String expression = "x";
+		String format = "0.##";
+        EcuDataConvertor[] convertors = {new ExternalDataConvertorImpl(this, units, expression, format)};
+		return convertors;
+	}
 }
Index: /trunk/src/com/romraider/logger/external/te/plugin/TEDataItem.java
===================================================================
--- /trunk/src/com/romraider/logger/external/te/plugin/TEDataItem.java	(revision 339)
+++ /trunk/src/com/romraider/logger/external/te/plugin/TEDataItem.java	(revision 340)
@@ -24,7 +24,3 @@
 public interface TEDataItem extends ExternalDataItem {
     void setRaw(int... raw);
-    
-    String getFormat();
-    
-    String getExpression();
 }
Index: /trunk/src/com/romraider/logger/external/te/plugin/TEDataItemImpl.java
===================================================================
--- /trunk/src/com/romraider/logger/external/te/plugin/TEDataItemImpl.java	(revision 339)
+++ /trunk/src/com/romraider/logger/external/te/plugin/TEDataItemImpl.java	(revision 340)
@@ -20,25 +20,25 @@
 package com.romraider.logger.external.te.plugin;
 
+import com.romraider.logger.ecu.definition.EcuDataConvertor;
+import com.romraider.logger.ecu.definition.ExternalDataConvertorImpl;
 import com.romraider.logger.external.te.plugin.TESensorUnits;
 
 public final class TEDataItemImpl implements TEDataItem {
     private final TEConverter converter = new TEConverterImpl();
+    private final EcuDataConvertor[] convertors;
     private final TESensorUnits sensorUnits;
     private final TESensorType sensorType;
-    private final String units;
     private final String name;
-    private final String format;
-    private final String expression;
     private int[] raw;
 
-//    public TEDataItemImpl(String name, String[] units, TESensorType sensorType, TESensorUnits sensorUnits) {
-    public TEDataItemImpl(String name, String units, TESensorType sensorType, TESensorUnits sensorUnits, String format, String expression) {
+    public TEDataItemImpl(String name, String units, TESensorType sensorType, TESensorUnits sensorUnits, String expression, String format) {
         super();
         this.name = name;
-        this.units = units;
         this.sensorType = sensorType;
         this.sensorUnits = sensorUnits;
-        this.format = format;
-        this.expression = expression;
+        convertors = new EcuDataConvertor[] {
+        		new ExternalDataConvertorImpl(this, units, expression, format)
+//        		new ExternalDataConvertorImpl(this, "foo", "x", "0")
+        	};
     }
 
@@ -51,14 +51,6 @@
     }
 
-    public String getUnits() {
-        return units;
-    }
-
-    public String getFormat() {
-        return format;
-    }
-
-    public String getExpression() {
-        return expression;
+    public EcuDataConvertor[] getConvertors() {
+        return convertors;
     }
 
Index: /trunk/src/com/romraider/logger/external/txstuner/plugin/TxsTunerDataItem.java
===================================================================
--- /trunk/src/com/romraider/logger/external/txstuner/plugin/TxsTunerDataItem.java	(revision 339)
+++ /trunk/src/com/romraider/logger/external/txstuner/plugin/TxsTunerDataItem.java	(revision 340)
@@ -20,4 +20,6 @@
 package com.romraider.logger.external.txstuner.plugin;
 
+import com.romraider.logger.ecu.definition.EcuDataConvertor;
+import com.romraider.logger.ecu.definition.ExternalDataConvertorImpl;
 import com.romraider.logger.external.core.DataListener;
 import com.romraider.logger.external.core.ExternalDataItem;
@@ -35,7 +37,7 @@
     }
 
-    public String getUnits() {
-        return "AFR";
-    }
+//    public String getUnits() {
+//        return "AFR";
+//    }
 
     public double getData() {
@@ -46,4 +48,20 @@
         this.data = data;
     }
+
+//	public String getFormat() {
+//		return "0.##";
+//	}
+//
+//	public String getExpression() {
+//		return "x";
+//	}
+
+	public EcuDataConvertor[] getConvertors() {
+		String units = "AFR";
+		String expression = "x";
+		String format = "0.##";
+        EcuDataConvertor[] convertors = {new ExternalDataConvertorImpl(this, units, expression, format)};
+		return convertors;
+	}
 }
 
Index: /trunk/src/com/romraider/logger/ecu/definition/ExternalDataConvertorImpl.java
===================================================================
--- /trunk/src/com/romraider/logger/ecu/definition/ExternalDataConvertorImpl.java	(revision 339)
+++ /trunk/src/com/romraider/logger/ecu/definition/ExternalDataConvertorImpl.java	(revision 340)
@@ -21,19 +21,14 @@
 
 import static com.romraider.logger.ecu.definition.xml.ConverterMaxMinDefaults.getMaxMin;
-import static com.romraider.util.ByteUtil.asUnsignedInt;
 import static com.romraider.util.JEPUtil.evaluate;
-import static com.romraider.util.ParamChecker.isValidBit;
-import static java.lang.Float.intBitsToFloat;
-
 import com.romraider.logger.ecu.ui.handler.dash.GaugeMinMax;
 import com.romraider.logger.external.core.ExternalDataItem;
 
 import java.text.DecimalFormat;
-import java.util.Map;
 
 public final class ExternalDataConvertorImpl implements EcuDataConvertor {
     private final String units;
     private final String expression;
-    private final GaugeMinMax gaugeMinMax;
+    private final GaugeMinMax gaugeMinMax = new GaugeMinMax(0,0,0);
 	private final ExternalDataItem dataItem; 
     private DecimalFormat format;
@@ -44,14 +39,17 @@
 //    <conversion units="bar" expr="x*37/255/14.50377" format="0.000" gauge_min="-1.2" gauge_max="2.8" gauge_step="0.4" />
 	
-	public ExternalDataConvertorImpl(ExternalDataItem dataItem) {
+	public ExternalDataConvertorImpl(ExternalDataItem dataItem, String units, String expression,
+									 String format
+//									 GaugeMinMax gaugeMinMax
+									 ) {
 		this.dataItem = dataItem;
-		this.units = dataItem.getUnits();
-		this.expression = "x";
-		this.gaugeMinMax = new GaugeMinMax(0,0,0);
-		this.format = new DecimalFormat("0.##");
+		this.units = units;
+		this.expression = expression;
+		this.format = new DecimalFormat(format);
 	}
 
     public double convert(byte[] bytes) {
         double value = dataItem.getData();
+//    	int value = asUnsignedInt(bytes);
         double result = evaluate(expression, value);
         return Double.isNaN(result) || Double.isInfinite(result) ? 0.0 : result;
@@ -73,3 +71,7 @@
         return format.toPattern();
     }
+
+    public String toString() {
+        return getUnits();
+    }
 }
Index: /trunk/src/com/romraider/logger/ecu/definition/ExternalDataImpl.java
===================================================================
--- /trunk/src/com/romraider/logger/ecu/definition/ExternalDataImpl.java	(revision 339)
+++ /trunk/src/com/romraider/logger/ecu/definition/ExternalDataImpl.java	(revision 340)
@@ -41,6 +41,5 @@
         checkNotNull(dataItem, dataSource);
         this.dataSource = dataSource;
-        EcuDataConvertor[] convertors = {new ExternalDataConvertorImpl(dataItem)};
-        this.convertors = convertors;            
+        this.convertors = dataItem.getConvertors();            
         id = createId(dataItem);
         name = dataItem.getName();
