- Template method pattern