public static function setUp(NodeName $nodeName, array $tasks, array $config = array())
    {
        /** @var $instance Process */
        $instance = new static();

        $instance->assertConfig($config);

        $processId = ProcessId::generate();

        $taskList = TaskList::scheduleTasks(TaskListId::linkWith($nodeName, $processId), $tasks);

        $instance->recordThat(ProcessWasSetUp::with($processId, $taskList, $config));

        return $instance;
    }