The problem solver