hopefully did templates correctly