better arg logic