use param list to simplify stack creating