public function updateSubscriber(
        string $email,
        string $firstName = null,
        string $lastName = null,
        $interests = null,
        array $extras = []
    ) : bool {
        $data = array_merge([
            'status_if_new' => 'subscribed',
            'email_address' => $email
        ], $extras);
        $mergeFields = [];
        if ($firstName !== null) {
            $mergeFields['FNAME'] = $firstName;
        }
        if ($lastName !== null) {
            $mergeFields['LNAME'] = $lastName;
        }

        if (count($mergeFields) > 0) {
            $data['merge_fields'] = (object) $mergeFields;
        }
        if ($interests !== null) {
            $data['interests'] = (object) $interests;
        }

        $result = $this->api->put('lists/'.$this->id().'/members/'.$this->support->hashEmail($email), $data);

        return $result->has('id') && strlen($result->get('id')) > 0;
    }