divide the tpl into three parts