Template method