Added Template Method Design Pattern