Template Pattern has been enforced a possible re-factor might be required to support composition over inheritance.