Template method design pattern added.