def solving_two_step_equations(depth=2, rounding=2):
    depth = convert_kwarg(depth, int)

    expression = symbols('x')
    for t in range(0, depth-1):
        exp_type = random.choice(['left', 'right', 'center_left', 'center_right'])

        if exp_type == 'left':
            expression = random_expression(expression)
        elif exp_type == 'right':
            expression = random_expression(None, expression)
        elif exp_type == 'center_left':
            expression = random_expression(expression, random_expression())
        elif exp_type == 'center_right':
            expression = random_expression(random_expression(), expression)

    expression = Eq(expression, random_tens_int(2))
    solution = solve(expression)

    if not solution:
        return solving_two_step_equations(depth, rounding)

    solution = solution[0]
    solution_1 = format_expression(solution)
    solution_2 = str(round(solution.evalf(), rounding))
    return "Solve for x: " + format_expression(expression), [solution_1, solution_2]
def order_of_operations(depth=2, rounding=2):
    depth = convert_kwarg(depth, int)

    expression = random_expression()
    for t in range(0, depth-1):
        exp_type = random.choice(['left', 'right', 'center_left', 'center_right'])

        if exp_type == 'left':
            expression = random_expression(expression)
        elif exp_type == 'right':
            expression = random_expression(None, expression)
        elif exp_type == 'center_left':
            expression = random_expression(expression, random_expression())
        elif exp_type == 'center_right':
            expression = random_expression(random_expression(), expression)



    return format_expression(expression), str(round(expression.evalf(), rounding))