@Nullable
  OperationChain continuationWithMethod(@NotNull MethodCall signature,
                                        int weight,
                                        @NotNull ChainCompletionContext context) {
    OperationChain head = create(signature, weight, context);
    if (head == null) return null;

    ChainOperation[] newReverseOperations = ArrayUtil.append(myReverseOperations, head.getPath()[0]);
    return new OperationChain(head.getQualifierClass(), newReverseOperations, head.getHead() , signature, Math.min(weight, getChainWeight()));
  }
@Nullable
  OperationChain continuationWithMethod(@NotNull MethodCall signature,
                                        int weight,
                                        @NotNull ChainCompletionContext context)