renamed -> LayerCell
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/axis/AxisInvariants.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/axis/AxisInvariants.xtend
index 0b906ad..592b4cf 100644
--- a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/axis/AxisInvariants.xtend
+++ b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/axis/AxisInvariants.xtend
@@ -2,10 +2,6 @@
 
 class AxisInvariants {
 	
-	def static getPixelSizeOfSegment(Axis axis, int segmentPosition) {
-		axis.getStartPixelOfSegmentPosition(segmentPosition + 1) - axis.getStartPixelOfSegmentPosition(segmentPosition)
-	}
-	
 	def static getPixelSize(Axis axis) {
 		axis.getStartPixelOfSegmentPosition(axis.segmentCount) - axis.getStartPixelOfSegmentPosition(0)
 	}
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/axis/segment/AbstractAxisSegment.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/axis/segment/AbstractAxisSegment.xtend
index 9d8037f..1d86cd9 100644
--- a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/axis/segment/AbstractAxisSegment.xtend
+++ b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/axis/segment/AbstractAxisSegment.xtend
@@ -5,17 +5,17 @@
 abstract class AbstractAxisSegment implements AxisSegment {
 	
 	val Axis axis
-	val int segmentPosition
-	val int segmentSpan
+	val int position
+	val int span
 	
-	new(Axis axis, int segmentPosition, int segmentSpan) {
+	new(Axis axis, int position, int span) {
 		this.axis = axis
-		this.segmentPosition = segmentPosition
-		this.segmentSpan = segmentSpan
+		this.position = position
+		this.span = span
 	}
 	
 	override getAxis() { axis }
-	override getSegmentPosition() { segmentPosition }
-	override getSegmentSpan() { segmentSpan }
+	override getPosition() { position }
+	override getSpan() { span }
 	
 }
\ No newline at end of file
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/axis/segment/AxisSegment.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/axis/segment/AxisSegment.xtend
index 1bf2b82..111ede1 100644
--- a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/axis/segment/AxisSegment.xtend
+++ b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/axis/segment/AxisSegment.xtend
@@ -5,8 +5,8 @@
 interface AxisSegment {
 	
 	def Axis getAxis()
-	def int getSegmentPosition()
-	def int getSegmentSpan()
+	def int getPosition()
+	def int getSpan()
 	
 	def Object getDataValue()
 	def void setDataValue(Object newValue)
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/axis/segment/AxisSegmentInvariants.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/axis/segment/AxisSegmentInvariants.xtend
new file mode 100644
index 0000000..bfd5a63
--- /dev/null
+++ b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/axis/segment/AxisSegmentInvariants.xtend
@@ -0,0 +1,11 @@
+package org.eclipse.nebula.widgets.nattable.core.axis.segment
+
+class AxisSegmentInvariants {
+	
+	def static getPixelSize(AxisSegment segment) {
+		val axis = segment.axis
+		val segmentPosition = segment.position
+		axis.getStartPixelOfSegmentPosition(segmentPosition + 1) - axis.getStartPixelOfSegmentPosition(segmentPosition)
+	}
+	
+}
\ No newline at end of file
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/DummyLayer.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/DummyLayer.xtend
index 8fb1b0d..bb62a9d 100644
--- a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/DummyLayer.xtend
+++ b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/DummyLayer.xtend
@@ -2,7 +2,7 @@
 
 import org.eclipse.nebula.widgets.nattable.core.axis.Axis
 import org.eclipse.nebula.widgets.nattable.core.axis.DefaultAxis
-import org.eclipse.nebula.widgets.nattable.core.layer.cell.ReadOnlyCell
+import org.eclipse.nebula.widgets.nattable.core.layer.cell.ReadOnlyLayerCell
 
 class DummyLayer implements Layer {
 
@@ -18,7 +18,7 @@
 	override getVerticalAxis() { verticalAxis }
 	
 	override getCell(int columnPosition, int rowPosition) {
-		new ReadOnlyCell(this, columnPosition, rowPosition, '''Column «columnPosition», Row «rowPosition»''')
+		new ReadOnlyLayerCell(this, columnPosition, rowPosition, '''Column «columnPosition», Row «rowPosition»''')
 	}
 	
 }
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 edcf6c0..0da9328 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,7 +1,7 @@
 package org.eclipse.nebula.widgets.nattable.core.layer
 
 import org.eclipse.nebula.widgets.nattable.core.axis.Axis
-import org.eclipse.nebula.widgets.nattable.core.layer.cell.Cell
+import org.eclipse.nebula.widgets.nattable.core.layer.cell.LayerCell
 
 interface Layer {
 	
@@ -12,6 +12,6 @@
 	
 	// Cell
 	
-	def Cell getCell(int columnPosition, int rowPosition)
+	def LayerCell getCell(int columnPosition, int rowPosition)
 	
 }
\ No newline at end of file
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/LayerInvariants.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/LayerInvariants.xtend
index 47e455c..1473461 100644
--- a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/LayerInvariants.xtend
+++ b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/LayerInvariants.xtend
@@ -1,6 +1,7 @@
 package org.eclipse.nebula.widgets.nattable.core.layer
 
 import static extension org.eclipse.nebula.widgets.nattable.core.axis.AxisInvariants.*
+import static extension org.eclipse.nebula.widgets.nattable.core.axis.segment.AxisSegmentInvariants.*
 
 /**
  * Utility class to efficiently calculate invariants that must hold for any given layer.
@@ -18,7 +19,7 @@
 	}
 	
 	def static getPixelWidthOfColumn(Layer layer, int columnPosition) {
-		layer.horizontalAxis.getPixelSizeOfSegment(columnPosition)
+		layer.horizontalAxis.getSegment(columnPosition).pixelSize
 	}
 	
 	def static getPixelWidth(Layer layer) {
@@ -40,7 +41,7 @@
 	}
 	
 	def static getPixelHeightOfRow(Layer layer, int rowPosition) {
-		layer.verticalAxis.getPixelSizeOfSegment(rowPosition)
+		layer.verticalAxis.getSegment(rowPosition).pixelSize
 	}
 	
 	def static getPixelHeight(Layer layer) {
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/ListRowDataLayer.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/ListRowDataLayer.xtend
index 4ed5e8e..ff1a3ae 100644
--- a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/ListRowDataLayer.xtend
+++ b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/ListRowDataLayer.xtend
@@ -5,7 +5,7 @@
 import org.eclipse.nebula.widgets.nattable.core.axis.Axis
 import org.eclipse.nebula.widgets.nattable.core.axis.DefaultAxis
 import org.eclipse.nebula.widgets.nattable.core.data.ObjectPropertyAccessor
-import org.eclipse.nebula.widgets.nattable.core.layer.cell.ReadOnlyCell
+import org.eclipse.nebula.widgets.nattable.core.layer.cell.ReadOnlyLayerCell
 
 class ListRowDataLayer implements Layer {
 	
@@ -30,7 +30,7 @@
 		val propertyId = horizontalAxis.getIdOfSegmentPosition(columnPosition)
 		val value = rowObject.getProperty(propertyId)
 		
-		new ReadOnlyCell(this, columnPosition, rowPosition, value)
+		new ReadOnlyLayerCell(this, columnPosition, rowPosition, value)
 	}
 	
 }
\ No newline at end of file
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/cell/AbstractLayerCell.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/cell/AbstractLayerCell.xtend
new file mode 100644
index 0000000..e177a0d
--- /dev/null
+++ b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/cell/AbstractLayerCell.xtend
@@ -0,0 +1,19 @@
+package org.eclipse.nebula.widgets.nattable.core.layer.cell
+
+import org.eclipse.nebula.widgets.nattable.core.geometry.PositionRectangle
+import org.eclipse.nebula.widgets.nattable.core.layer.Layer
+
+abstract class AbstractLayerCell implements LayerCell {
+	
+	val Layer layer
+	val PositionRectangle positionBounds
+	
+	new(Layer layer, int columnPosition, int rowPosition) {
+		this.layer = layer
+		this.positionBounds = new PositionRectangle(columnPosition, rowPosition, 1, 1)
+	}
+	
+	override getLayer() { layer }
+	override getPositionBounds() { positionBounds }
+	
+}
\ No newline at end of file
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/cell/LayerDataAccessorCell.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/cell/DataAccessorLayerCell.xtend
similarity index 67%
rename from NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/cell/LayerDataAccessorCell.xtend
rename to NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/cell/DataAccessorLayerCell.xtend
index 94ce514..420a9d3 100644
--- a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/cell/LayerDataAccessorCell.xtend
+++ b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/cell/DataAccessorLayerCell.xtend
@@ -1,24 +1,17 @@
 package org.eclipse.nebula.widgets.nattable.core.layer.cell
 
-import org.eclipse.nebula.widgets.nattable.core.geometry.PositionRectangle
 import org.eclipse.nebula.widgets.nattable.core.layer.Layer
 import org.eclipse.nebula.widgets.nattable.core.layer.LayerDataAccessor
 
-class LayerDataAccessorCell implements Cell {
+class DataAccessorLayerCell extends AbstractLayerCell {
 	
-	val Layer layer
-	val PositionRectangle positionBounds
 	val LayerDataAccessor layerDataAccessor
 	
 	new(Layer layer, int columnPosition, int rowPosition, LayerDataAccessor layerDataAccessor) {
-		this.layer = layer
-		this.positionBounds = new PositionRectangle(columnPosition, rowPosition, 1, 1)
+		super(layer, columnPosition, rowPosition)
 		this.layerDataAccessor = layerDataAccessor
 	}
 	
-	override getLayer() { layer }
-	override getPositionBounds() { positionBounds }
-	
 	override getDataValue() {
 		layerDataAccessor.getCellDataValue(
 			positionBounds.originPosition.columnPosition,
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/cell/Cell.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/cell/LayerCell.xtend
similarity index 93%
rename from NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/cell/Cell.xtend
rename to NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/cell/LayerCell.xtend
index ef0f4f3..96b1a95 100644
--- a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/cell/Cell.xtend
+++ b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/cell/LayerCell.xtend
@@ -3,7 +3,7 @@
 import org.eclipse.nebula.widgets.nattable.core.geometry.PositionRectangle
 import org.eclipse.nebula.widgets.nattable.core.layer.Layer
 
-interface Cell {
+interface LayerCell {
 	
 	def Layer getLayer()
 	def PositionRectangle getPositionBounds()
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/cell/CellInvariants.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/cell/LayerCellInvariants.xtend
similarity index 91%
rename from NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/cell/CellInvariants.xtend
rename to NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/cell/LayerCellInvariants.xtend
index 22c2a9c..4d8c040 100644
--- a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/cell/CellInvariants.xtend
+++ b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/cell/LayerCellInvariants.xtend
@@ -4,9 +4,9 @@
 
 import static extension org.eclipse.nebula.widgets.nattable.core.layer.LayerInvariants.*
 
-class CellInvariants {
+class LayerCellInvariants {
 	
-	def static getPixelBounds(Cell cell) {
+	def static getPixelBounds(LayerCell cell) {
 		val layer = cell.layer
 		val positionBounds = cell.positionBounds
 		
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/cell/ReadOnlyCell.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/cell/ReadOnlyCell.xtend
deleted file mode 100644
index d8a2e62..0000000
--- a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/cell/ReadOnlyCell.xtend
+++ /dev/null
@@ -1,26 +0,0 @@
-package org.eclipse.nebula.widgets.nattable.core.layer.cell
-
-import org.eclipse.nebula.widgets.nattable.core.geometry.PositionRectangle
-import org.eclipse.nebula.widgets.nattable.core.layer.Layer
-
-class ReadOnlyCell implements Cell {
-	
-	val Layer layer
-	val PositionRectangle positionBounds
-	val Object dataValue
-	
-	new(Layer layer, int columnPosition, int rowPosition, Object dataValue) {
-		this.layer = layer
-		this.positionBounds = new PositionRectangle(columnPosition, rowPosition, 1, 1)
-		this.dataValue = dataValue
-	}
-	
-	override getLayer() { layer }
-	override getPositionBounds() { positionBounds }
-	override getDataValue() { dataValue }
-	
-	override setDataValue(Object newValue) {
-		throw new UnsupportedOperationException("TODO: auto-generated method stub")
-	}
-	
-}
\ No newline at end of file
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/cell/ReadOnlyLayerCell.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/cell/ReadOnlyLayerCell.xtend
new file mode 100644
index 0000000..4ff7d77
--- /dev/null
+++ b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/cell/ReadOnlyLayerCell.xtend
@@ -0,0 +1,20 @@
+package org.eclipse.nebula.widgets.nattable.core.layer.cell
+
+import org.eclipse.nebula.widgets.nattable.core.layer.Layer
+
+class ReadOnlyLayerCell extends AbstractLayerCell {
+	
+	val Object dataValue
+	
+	new(Layer layer, int columnPosition, int rowPosition, Object dataValue) {
+		super(layer, columnPosition, rowPosition)
+		this.dataValue = dataValue
+	}
+	
+	override getDataValue() { dataValue }
+	
+	override setDataValue(Object newValue) {
+		throw new UnsupportedOperationException("TODO: auto-generated method stub")
+	}
+	
+}
\ No newline at end of file
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/header/ColumnHeaderLayer.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/header/ColumnHeaderLayer.xtend
index cce2315..6671a2b 100644
--- a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/header/ColumnHeaderLayer.xtend
+++ b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/header/ColumnHeaderLayer.xtend
@@ -4,7 +4,7 @@
 import org.eclipse.nebula.widgets.nattable.core.axis.DefaultAxis
 import org.eclipse.nebula.widgets.nattable.core.layer.Layer
 import org.eclipse.nebula.widgets.nattable.core.layer.LayerDataAccessor
-import org.eclipse.nebula.widgets.nattable.core.layer.cell.LayerDataAccessorCell
+import org.eclipse.nebula.widgets.nattable.core.layer.cell.DataAccessorLayerCell
 
 class ColumnHeaderLayer implements Layer, LayerDataAccessor {
 	
@@ -23,7 +23,7 @@
 	override getVerticalAxis() { verticalAxis }
 	
 	override getCell(int columnPosition, int rowPosition) {
-		new LayerDataAccessorCell(this, columnPosition, rowPosition, this)
+		new DataAccessorLayerCell(this, columnPosition, rowPosition, this)
 	}
 	
 	// LayerDataAccessor
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/header/RowHeaderLayer.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/header/RowHeaderLayer.xtend
index 6847c29..d29ac36 100644
--- a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/header/RowHeaderLayer.xtend
+++ b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/header/RowHeaderLayer.xtend
@@ -4,7 +4,7 @@
 import org.eclipse.nebula.widgets.nattable.core.axis.DefaultAxis
 import org.eclipse.nebula.widgets.nattable.core.layer.Layer
 import org.eclipse.nebula.widgets.nattable.core.layer.LayerDataAccessor
-import org.eclipse.nebula.widgets.nattable.core.layer.cell.LayerDataAccessorCell
+import org.eclipse.nebula.widgets.nattable.core.layer.cell.DataAccessorLayerCell
 
 class RowHeaderLayer implements Layer, LayerDataAccessor {
 	
@@ -23,7 +23,7 @@
 	override getVerticalAxis() { verticalAxis }
 	
 	override getCell(int columnPosition, int rowPosition) {
-		new LayerDataAccessorCell(this, columnPosition, rowPosition, this)
+		new DataAccessorLayerCell(this, columnPosition, rowPosition, this)
 	}
 	
 	// LayerDataAccessor
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/renderer/javafx/DefaultLayerRenderer.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/renderer/javafx/DefaultLayerRenderer.xtend
index 305f255..6b49a19 100644
--- a/NatTable/src/org/eclipse/nebula/widgets/nattable/renderer/javafx/DefaultLayerRenderer.xtend
+++ b/NatTable/src/org/eclipse/nebula/widgets/nattable/renderer/javafx/DefaultLayerRenderer.xtend
@@ -6,7 +6,7 @@
 import org.eclipse.nebula.widgets.nattable.core.layer.Layer
 
 import static extension org.eclipse.nebula.widgets.nattable.core.layer.LayerInvariants.*
-import static extension org.eclipse.nebula.widgets.nattable.core.layer.cell.CellInvariants.*
+import static extension org.eclipse.nebula.widgets.nattable.core.layer.cell.LayerCellInvariants.*
 
 class DefaultLayerRenderer implements JavaFXLayerRenderer {