safer argument get
iter guard