with template and some remarks in test