template component