Figure 3: The template-based solution classes