template inheritance almost works