Make problem writer worth with different problem types