inversion implemented