template syntax is really strange
Compile fix? -- also remove unneeded includes?