advanced templates(1/2).