Template method cross checked with Lovedeep; differences are understood