  We consider systems of ordinary differential equations with known first
integrals. The notion of a discrete tangent space is introduced as the
orthogonal complement of an arbitrary set of discrete gradients. Integrators
which exactly conserve all the first integrals simultaneously are then defined.
In both cases we start from an arbitrary method of a prescribed order (say, a
Runge-Kutta scheme) and modify it using two approaches: one based on projection
and one based one local coordinates. The methods are tested on the Kepler
problem.
