The stack can take some non-class tpyes so we'll change the template declaration to typename