class Board {

   public List<Position> legalMovesFor(char color) {
      final ImmutableList.Builder<Position> result = ImmutableList.builder();

      for (int iLine = 0; iLine < cells.length; ++iLine) {
         for (int iColumn = 0; iColumn < cells[iLine].length; ++iColumn) {
            final Position currentPosition = position(iLine, iColumn);

            if (isValidPosition(color, currentPosition)) {

               result.add(currentPosition);
            }
         }
      }

      return result.build();
   }

   public  Board(char[]... cells);

}