Tempalt Method Pattern