added template observer