split parse_options, save sub_commands
fix critic