How we Solve Problems