added rest argument contracts on fun