Starting major rewrite of problem framework