public Instruction newInstruction(MethodModel _methodModel, ByteReader byteReader, boolean _isWide) {
         Instruction newInstruction = null;
         if (clazz != null) {

            try {
               final Constructor<?> constructor = clazz.getDeclaredConstructor(MethodModel.class, ByteReader.class, boolean.class);
               newInstruction = (Instruction) constructor.newInstance(_methodModel, byteReader, _isWide);
               newInstruction.setLength(byteReader.getOffset() - newInstruction.getThisPC());
            } catch (final SecurityException e) {
               // TODO Auto-generated catch block
               e.printStackTrace();
            } catch (final NoSuchMethodException e) {
               // TODO Auto-generated catch block
               e.printStackTrace();
            } catch (final IllegalArgumentException e) {
               // TODO Auto-generated catch block
               e.printStackTrace();
            } catch (final InstantiationException e) {
               // TODO Auto-generated catch block
               e.printStackTrace();
            } catch (final IllegalAccessException e) {
               // TODO Auto-generated catch block
               e.printStackTrace();
            } catch (final InvocationTargetException e) {
               // TODO Auto-generated catch block
               e.printStackTrace();
            }
         }

         return (newInstruction);
      }