refactored arg_type