add integral functions