added integration functions