Added a template method pattern.