Add template method pattern