Principled Problem Solving (PPS)