refactor handling of special args