rename args to opts