factor out functioninfo into its own thing
don't call non-templates with template params