safer argument handling