supressing warnings regarding 'typename' used outside of template