adding command infrastructure
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/command/Command.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/command/Command.xtend
new file mode 100644
index 0000000..f2a2f95
--- /dev/null
+++ b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/command/Command.xtend
@@ -0,0 +1,5 @@
+package org.eclipse.nebula.widgets.nattable.core.command
+
+interface Command {
+	
+}
\ No newline at end of file
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/command/CommandHandler.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/command/CommandHandler.xtend
new file mode 100644
index 0000000..0871a65
--- /dev/null
+++ b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/command/CommandHandler.xtend
@@ -0,0 +1,7 @@
+package org.eclipse.nebula.widgets.nattable.core.command
+
+interface CommandHandler {
+	
+	def void doCommand(Command command)
+	
+}
\ No newline at end of file
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/Layer.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/Layer.xtend
index ee16aba..f7e3569 100644
--- a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/Layer.xtend
+++ b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/Layer.xtend
@@ -1,5 +1,6 @@
 package org.eclipse.nebula.widgets.nattable.core.layer
 
+import org.eclipse.nebula.widgets.nattable.core.command.CommandHandler
 import org.eclipse.nebula.widgets.nattable.core.event.EventListener
 import org.eclipse.nebula.widgets.nattable.core.event.EventSource
 import org.eclipse.nebula.widgets.nattable.core.layer.axis.Axis
@@ -8,7 +9,7 @@
 /**
  * A two-dimensional rectangular region of cells.
  */
-interface Layer extends EventSource, EventListener {
+interface Layer extends CommandHandler, EventSource, EventListener {
 	
 	/**
 	 * @return The Axis that characterizes the horizontal dimension of this layer.
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/AbstractLayer.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/AbstractLayer.xtend
index 311a54c..8d98b14 100644
--- a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/AbstractLayer.xtend
+++ b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/AbstractLayer.xtend
@@ -2,7 +2,12 @@
 
 import org.eclipse.nebula.widgets.nattable.core.event.AbstractEventSourceSink
 import org.eclipse.nebula.widgets.nattable.core.layer.Layer
+import org.eclipse.nebula.widgets.nattable.core.command.Command
 
 abstract class AbstractLayer extends AbstractEventSourceSink implements Layer {
 	
+	override doCommand(Command command) {
+		// Do nothing by default
+	}
+	
 }
\ No newline at end of file
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/composite/CompositeLayer.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/composite/CompositeLayer.xtend
index 17c9223..993ce70 100644
--- a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/composite/CompositeLayer.xtend
+++ b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/composite/CompositeLayer.xtend
@@ -4,6 +4,7 @@
 import java.util.List
 import org.eclipse.nebula.widgets.nattable.core.layer.Layer
 import org.eclipse.nebula.widgets.nattable.core.layer.impl.AbstractLayer
+import org.eclipse.nebula.widgets.nattable.core.command.Command
 
 /**
  * A Layer which is composed of a number of other layers. Sublayers are arranged in rows and columns to create this larger composite layer.
@@ -55,6 +56,12 @@
 		new CompositeCell(this, subCell, xLayoutInfo.segmentOffset, yLayoutInfo.segmentOffset)
 	}
 	
+	override doCommand(Command command) {
+		for (row : rows)
+			for (childLayer : row.childLayers)
+				childLayer.doCommand(command)
+	}
+	
 	//
 	
 	private def CompositeLayoutInfo getSubLayerLayoutPositionInfo(CompositeAxis compositeAxis, int segmentPosition) {