Implementation of Template Method patterns