@Override
    public ArrayList<BoardPosition> getPossibleDestinations(Board board) {
        ArrayList<BoardPosition> possibleDestinations = new ArrayList<BoardPosition>();

        //is it a valid L move ?
        int xDiff = Math.abs(startingPosition.getColumn() - targetPosition.getColumn());
        int yDiff = Math.abs(startingPosition.getRow() - targetPosition.getRow());
        if (! ((xDiff == 2 && yDiff == 1)
                || (xDiff == 1 && yDiff == 2))) {
            //TODO throw exception
        }

        Piece piece = board.pieces[targetPosition.getColumn()][targetPosition.getRow()];
        if (piece == null) {
            //empty field
            possibleDestinations.add(targetPosition);
        } else if (piece.getColor() != pieceColor) {
            //capture
            possibleDestinations.add(targetPosition);
        } else {
            //friendly piece on field
        }

        return possibleDestinations;
    }