lets factorize the creation of inversion failures so we can swap out the impl if we decide to change types