                 if hasValue == false && args.count > 0 {
                     hasValue = true
                     value = args.first![...]
+                    args.removeFirst()
                 }
                 if hasValue == false {
                     return (false, "flag needs an argument: -\(name)")

                if let err = flag.value.set(str: value) {
                    return (false, "invalid value \(value) for flag -\(name): \(err)");
                }
                args.removeFirst()
            }
        } else {
            if name == "help" || name == "h" { // special case for nice help message.

        }
    }
}

