Geometric integration theory