Index: trunk/src/org/expeditee/items/Data.java
===================================================================
--- trunk/src/org/expeditee/items/Data.java	(revision 1388)
+++ trunk/src/org/expeditee/items/Data.java	(revision 1388)
@@ -0,0 +1,64 @@
+package org.expeditee.items;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class Data {
+	
+	private List<String> entries = new ArrayList<String>();
+	
+	/**
+	 * @return The entries in the data.
+	 */
+	public List<String> getData() {
+		return entries;
+	}
+	
+	/**
+	 * Sets data entries to parameter unless parameter is empty or null, in which case it sets the data entries to null.
+	 * @param data The list of strings to set as the entries to the data.
+	 */
+	public void setData(List<String> data) {
+		if (data == null || data.isEmpty()) {
+			entries = null;
+		} else {
+			entries = data;
+		}
+	}
+	
+	/**
+	 * Sets data entries to new list with parameter in it unless parameter is empty or null, in which case it sets _data to null.
+	 * @param data The data that will be the only data entry. 
+	 */
+	public void setData(String data) {
+		if (data == null || data.isEmpty()) {
+			entries = null;
+		} else {
+			entries = new ArrayList<String>();
+			entries.add(data);
+		}
+	}
+	
+	/**
+	 * Adds parameter to data entries.
+	 * @param data The data to add.
+	 */
+	public void addToData(String data) {
+		if (data != null) {
+			if (entries == null)
+				entries = new ArrayList<String>();
+			entries.add(data);
+		}
+	}
+	
+	public boolean hasData(String data) {
+		if (entries != null && data != null && data.length() > 0) {
+			for (final String d : entries) {
+				if (d.compareTo(data) == 0) {
+					return true;
+				}
+			}
+		}
+		return false;
+	}
+}
Index: trunk/src/org/expeditee/items/Item.java
===================================================================
--- trunk/src/org/expeditee/items/Item.java	(revision 1387)
+++ trunk/src/org/expeditee/items/Item.java	(revision 1388)
@@ -273,6 +273,4 @@
 
 	private List<String> _actions = null;
-
-	private List<String> _data = null;
 	 
 	private String _formula = null;
@@ -310,7 +308,5 @@
 	protected boolean _filled = true;
 	
-	// NGIKM Attributes
-	private List<String> _ngikmLabels = new ArrayList<String>();
-	private List<String> _ngikmKeys = new ArrayList<String>();
+	private Data _data = new Data();
 
 	/** Just calls source.duplicateOnto(dest). */
@@ -384,7 +380,4 @@
 
 		dest._visible = this._visible;
-		
-		dest._ngikmKeys = new ArrayList<String>(this._ngikmKeys);
-		dest._ngikmLabels = new ArrayList<String>(this._ngikmLabels);
 
 		Frame parent = DisplayController.getCurrentFrame();
@@ -652,36 +645,29 @@
 	 *         has been assigned.
 	 */
-	public List<String> getAction()
-	{
+	public List<String> getAction()	{
 		return _actions;
 	}
 
-	public List<String> getData()
-	{
-		return _data;
-	}
-
-	public List<String> getActionCursorEnter()
-	{
+	public List<String> getData() {
+		return _data.getData();
+	}
+
+	public List<String> getActionCursorEnter() {
 		return _actionCursorEnter;
 	}
 
-	public List<String> getActionCursorLeave()
-	{
+	public List<String> getActionCursorLeave() {
 		return _actionCursorLeave;
 	}
 
-	public List<String> getActionEnterFrame()
-	{
+	public List<String> getActionEnterFrame() {
 		return _actionEnterFrame;
 	}
 
-	public List<String> getActionLeaveFrame()
-	{
+	public List<String> getActionLeaveFrame() {
 		return _actionLeaveFrame;
-	};
-
-	public boolean getActionMark()
-	{
+	}
+
+	public boolean getActionMark() {
 		return _actionMark;
 	}
@@ -1653,36 +1639,17 @@
 
 	public void setData(List<String> data) {
-		if (data == null || data.size() == 0)
-			_data = null;
-		else
-			_data = new LinkedList<String>(data);
+		_data.setData(data);
 	}
 
 	public void setData(String data) {
-		if (data == null || data.length() == 0)
-			_data = null;
-		else {
-			_data = new LinkedList<String>();
-			_data.add(data);
-		}
+		_data.setData(data);
 	}
 
 	public void addToData(String dataItem) {
-		if (dataItem != null) {
-			if (_data == null)
-				_data = new LinkedList<String>();
-			_data.add(dataItem);
-		}
-	}
-	
-	public boolean hasData(final String dataItem) {
-		if (_data != null && dataItem != null && dataItem.length() > 0) {
-			for (final String d : _data) {
-				if (d.compareTo(dataItem) == 0) {
-					return true;
-				}
-			}
-		}
-		return false;
+		_data.addToData(dataItem);
+	}
+	
+	public boolean hasData(String dataItem) {
+		return _data.hasData(dataItem);
 	}
 
