@Override
 public void visitOuterClass(String owner, String name, String desc) {
   super.visitOuterClass(
       remapper.mapType(owner),
       name == null ? null : remapper.mapMethodName(owner, name, desc),
       desc == null ? null : remapper.mapMethodDesc(desc));
 }
 @Override
 public void visitInnerClass(String name, String outerName, String innerName, int access) {
   super.visitInnerClass(
       remapper.mapType(name),
       outerName == null ? null : remapper.mapType(outerName),
       innerName, // TODO should it be changed?
       access);
 }
 @Override
 public void visit(
     int version,
     int access,
     String name,
     String signature,
     String superName,
     String[] interfaces) {
   this.className = name;
   super.visit(
       version,
       access,
       remapper.mapType(name),
       remapper.mapSignature(signature, false),
       remapper.mapType(superName),
       interfaces == null ? null : remapper.mapTypes(interfaces));
 }