finished template pattern