public static function create($payload, $isAReturningVal, $isATraversable = false)
    {
        if (\is_array($payload) || \is_string($payload)) {
            return new CallableNode($payload, $isAReturningVal, $isATraversable);
        }

        if ($payload instanceof \Closure) {
            // distinguishing Closures actually is surrealistic
            return new ClosureNode($payload, $isAReturningVal, $isATraversable);
        }

        if ($payload instanceof FlowInterface) {
            return new BranchNode($payload, $isAReturningVal);
        }

        throw new NodalFlowException('Payload not supported, must be Callable or Flow');
    }