Board - build possible assits List<Pawn / GridPoint2> - support different Tiles layout Board.Orientation offset inverted even/odd row scheme Tile - automatic overlays to show unit stack depth Pawn - public abstract boolean isUnit(); => unit stack depth Maybe ??? might think about decorator pattern for overlays us decorator pattern, No can Do ?? + interface Pawn + !!! abstract class SimplePawn implements Pawn protected Image OR extends Image + abstract class PawnDecorator implements Pawn potected Pawn pawn; PawnDecorator(Pawn pawn) { this.pawn = pawn; } public _method_() { pawn._method_(); } + ?! abstract class OverlayPawnDecorator extends PawnDecorator ... + ?! abstract class HeadedPawnDecorator extends PawnDecorator ... * class Unit extends SimplePawn getUnit(_args_) { return new HeadedPawnDecorator( new OverlayPawnDecorator ( new Unit(_args_) ) ) }