introduce templates