why did we move away from using template inheritance here?