Demo for template method pattern