Solving Problems: Domains, Causes and Actions