args can have name, flag, or both