use JST template pattern