Ported over AgnInferExonsVisitor class with very little grief