templates for differnet problem types