91³Ô¹ÏÍø

Watch CBS News

Lawsuit claims deadly Hingham Apple store crash was '100 percent preventable'

HINGHAM – An attorney for two injured victims filed the first lawsuit in the deadly Hingham Apple store crash on Tuesday, calling the incident "100% preventable."

Attorney Doug Sheff held a press conference officially announcing the lawsuit. Sheff represents Apple store employee Stephen Parrish and Matthew Timberger, who was a customer in the store.

Nearly two dozen people were injured in the November 21 crash that killed Kevin Bradley, who was helping with construction taking place at the store.

Sheff said there were no protective barriers in front of the store, but the shopping plaza did have barriers in front of electrical fixtures and dumpsters behind the building.

"So at this location, trash is better protected than human lives," Sheff said.

Bollards were installed in front of the store days after the crash.

"Our experts tell us that this catastrophe was 100% preventable. They simply needed to place a few barriers or bollards between the parking lot traffic, which was busy holiday traffic, and the public," Sheff said.

David DiAntonio is the CEO of McCue Corporation, which manufacturers bollards in an effort to prevent similar crashes.

He said the barriers can likely only protect from cars operating around 20-30 MPH. So what if the car was driving 50-60 MPH, as police said Rein was?

"It would be very difficult, but there are military grade bollards that would stop that. It certainly would have slowed it down, or at least stopped it from going as far into the store as possible," DiAntonio said.

Sheff said the lawsuit aims to "right a wrong that exists" and "make the families whole."

The lawsuit points the blame against the driver, Bradley Rein, who is charged in the crash. It also names Apple, and the companies that developed, own, and manage the property.

WBZ-TV reached out to Apple for comment on the lawsuit but has not yet heard back.

View CBS News In
CBS News App Open
Chrome Safari Continue
const link = doc.createElement('link'); link.rel = 'stylesheet'; link.href = '/fly/fly/bundles/cbsnewscontent/css/cmp-banner.min.css?v=50747257b890e014813016b79ece0fb2'; doc.head.appendChild(link); doc.body.innerHTML = CONSENT_MESSAGE; } else { el.insertAdjacentHTML('afterend', CONSENT_MESSAGE); } }); } function hidePrivacyMessage() { // Remove from the main document document.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); // Remove from inside any iframes document.querySelectorAll('iframe').forEach(iframe => { const doc = iframe.contentDocument || iframe.contentWindow.document; doc.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); }); } function activateGatedScripts() { // Handle both new format (cmp-gated-script) and old OneTrust/Ketch format (optanon-category-4) const gatedScripts = Array.from(document.querySelectorAll('script.cmp-gated-script, script.optanon-category-4')); // Activate scripts sequentially with a small delay to avoid timing issues let delay = 0; gatedScripts.forEach(function(placeholder, index) { setTimeout(function() { // Skip if already processed if (placeholder.hasAttribute('data-cmp-processed')) { return; } placeholder.setAttribute('data-cmp-processed', 'true'); const newScript = document.createElement('script'); newScript.type = 'text/javascript'; // Try new format first (data-cmp-src), then fall back to old format (data-src) const src = placeholder.getAttribute('data-cmp-src') || placeholder.getAttribute('data-src'); if (src) { newScript.src = src; } else if (placeholder.textContent) { // Inline script - just copy the content newScript.textContent = placeholder.textContent; } // Handle new format attributes (data-cmp-attrs) - for both inline and external scripts const attrs = placeholder.getAttribute('data-cmp-attrs'); if (attrs) { const tempDiv = document.createElement('div'); tempDiv.innerHTML = '
<\/div>'; const tempAttrs = tempDiv.firstChild.attributes; for (let i = 0; i < tempAttrs.length; i++) { // For external scripts, allow defer/async. For inline scripts, skip them (not valid) if (src || (tempAttrs[i].name !== 'async' && tempAttrs[i].name !== 'defer')) { newScript.setAttribute(tempAttrs[i].name, tempAttrs[i].value); } } } // Copy other attributes from old OneTrust format for (let i = 0; i < placeholder.attributes.length; i++) { const attr = placeholder.attributes[i]; // Skip attributes we've already handled or don't want to copy if (!['class', 'data-src', 'data-type', 'data-cmp-src', 'data-cmp-attrs', 'data-cmp-processed', 'type', 'async', 'defer', 'src'].includes(attr.name)) { newScript.setAttribute(attr.name, attr.value); } } placeholder.parentNode.replaceChild(newScript, placeholder); // If external script, manually trigger window.onload handlers after it loads // This handles widgets that use window.onload for initialization if (src) { newScript.addEventListener('load', function() { // If page already loaded and script set a new onload handler, trigger it if (document.readyState === 'complete' && window.onload) { const originalOnload = window.onload; window.onload = null; // Clear temporarily to prevent loops originalOnload(); // Execute the handler } }); } }, delay); delay += 500; // 500ms delay between each script to allow full loading }); } cbsoptanon.onScriptsReady(function(cmp) { cmp.ot.targetingAllowed(function(allowed) { if (!allowed) { showPrivacyMessage(); } else { activateGatedScripts(); } }); cmp.ot.awaitInitialConsent(function(consent_model) { cmp.ot.addOnConsentChangedHandler(function() { cmp.ot.targetingAllowed(function(allowed) { if (allowed) { hidePrivacyMessage(); activateGatedScripts(); } else { showPrivacyMessage(); } }); }); }); });