add argument splicing