Add Template Method Pattern