public Optional<BoardTileModel> fillNextTileModel(GridModel.GridPosition gridPosition) {
    BoardTileModel boardTileModel, nextTileModel;
    Optional<BoardTileModel> boardTileModelOptional = Optional.absent();
    try {
      boardTileModel = gridModel.get(gridPosition);
      boardTileModel.setFilling(false);
      boardTileModel.setFull();
      GridModel.GridPosition nextGridPosition = boardTileModel.getNextGridPosition();
      nextTileModel = gridModel.get(nextGridPosition);
      nextTileModel.setFillable(gridPosition.subtract(nextGridPosition));
      boardTileModelOptional = Optional.of(nextTileModel);

    } catch (GridPositionOutOfBoundsException | NullPointerException e) {
      e.printStackTrace();
    }
    return boardTileModelOptional;
  }