handle argument expansion better