Solving Tough Problems