A problem solving approach to mathematics