public function resetID()
    {
        if (session_status() === PHP_SESSION_ACTIVE)
        {
            $this->set('session_mgmt', 'destroyed', time());
            $auth = $this->get('authentication');
            if ($auth)
                unset($this['authentication']);

            $new_session_id = self::create_new_id();
            $this->set('session_mgmt', 'new_session_id', $new_session_id);
            session_commit();
            
            ini_set('session.use_strict_mode', 0);
            session_id($new_session_id);

            session_start();
            ini_set('session.use_strict_mode', 1);
            $this->session_id = session_id();
            $this->values = &$_SESSION;
            $this->session_cookie->setValue($new_session_id);

            // Force destroyed to be empty 
            $this->set('session_mgmt', 'destroyed', null);

            if ($auth)
                $this['authentication'] = $auth;

            // Store the start time of the new session
            $this->set('session_mgmt', 'start_time', time());
        }
    }