public function move(Node $newFolder)
    {
        if (!$newFolder->isFolder()) {
            throw new \Exception("New destination node is not a folder.");
        }

        if (!$this->isFile() && !$this->isFolder()) {
            throw new \Exception("Moving a node can only be performed on FILE and FOLDER kinds.");
        }

        $retval = [
            'success' => false,
            'data'    => [],
        ];

        $response = self::$httpClient->post(
            self::$account->getMetadataUrl() . "nodes/{$newFolder['id']}/children",
            [
                'headers'    => [
                    'Authorization' => 'Bearer ' . self::$account->getToken()['access_token'],
                ],
                'json'       => [
                    'fromParent' => $this['parents'][0],
                    'childId'    => $this['id'],
                ],
                'exceptions' => false,
            ]
        );

        $retval['data'] = json_decode((string)$response->getBody(), true);

        if ($response->getStatusCode() === 200) {
            $retval['success'] = true;
            $this->replace($retval['data']);
            $this->save();
        }

        return $retval;
    }