Tools are things that we use to solve problems. Powerful tools enable us either to solve difficult problems or to solve problems more easily. Between tools and problems exists an often-forgotten gap, which can be only filled with various usages. Usage of a tool can itself be complicated enough to become a problem that we need external help, which, incarnated in various forms, is in essence another tool.
You see, problems lead to creations of tools, and tools in turn lead to new problems besides the original problems and the tool-creation problems. The real general look of solution thus never exhibits a simple point-to-point (i.e., problem to tool) relationship as we are often tempted to believe, but a fractal relationship (see the H-fractal in particular). At each iteration of the fractal, we create tools and new problems at the same time. We only hope that new problems at each iteration become easier so that after a few cycles the original problem can “reduce” to a comprehensible and controllable level. Even so, the fractal underneath each solution is by itself a complicated thing. Solution never really eliminates complexity but only transforms it.