use explicit callback
update template refs & prepare detail callback fn