add argument shrinking support