Split problem marker into different classes for each problem, simplified error generation.