new structure for argument spec