refactored parse_argv()