variable integration