First Order Problem Solving