Templar - a framework for template-method hyper-heuristics