def correct_move(gameboard, streets, added_pieces):
    """
    Method to check whether the planned move is correct.
    A move is correct if all items of the gameboard are still there and only the added values are new.
    Additionally, each list must contain 3 or more items
    :param gameboard: Gameboard before the move
    :param streets: Gameboard after the move
    :param added_pieces: Pieces added during the move
    :return: True if the move is correct, otherwise False
    """
    flat_list_gameboard = [item for sublist in gameboard for item in sublist]
    flat_list_new_gameboard = [item for sublist in streets for item in sublist]
    if len(flat_list_gameboard) + len(added_pieces) != len(flat_list_new_gameboard):
        return False
    for item in flat_list_gameboard:
        if item not in flat_list_new_gameboard:
            return False
    for street in streets:
        if len(street) < 3:
            return False
    return True