a reliable way of arg passing