combine init with template
update comments