added callback template