2:23-cv-00345
S3G Technology LLC v. Five Below Inc
I. Executive Summary and Procedural Information
- Parties & Counsel:
- Plaintiff: S3G Technology LLC (California)
- Defendant: Five Below, Inc. (Pennsylvania)
- Plaintiff’s Counsel: Parker, Bunt & Ainsworth, P.C.
- Case Identification: 2:23-cv-00345, E.D. Tex., 07/24/2023
- Venue Allegations: Plaintiff alleges venue is proper in the Eastern District of Texas because Defendant maintains a regular and established place of business in the state, distributes its mobile application to customers within the district, and derives revenue from users in the district utilizing the accused mobile ordering functionality.
- Core Dispute: Plaintiff alleges that Defendant’s mobile e-commerce application and supporting server infrastructure infringe three patents related to methods for efficiently modifying and updating software on remote devices.
- Technical Context: The technology addresses the challenge of updating client-server applications, like mobile apps, without transmitting large executable files, a significant consideration for systems distributed over wireless networks with limited bandwidth.
- Key Procedural History: The complaint references prior litigation involving the asserted patents, S3G Tech. LLC v. Unikey Techs., Inc., and cites claim construction rulings from that case for key terms including "dialogue module" and "code." This suggests Plaintiff will argue that these prior judicial interpretations of claim scope should guide the current proceedings. The complaint also cites the prosecution history of a related patent to assert that the claimed three-entity system and specific application structure were deemed non-obvious by the patent office.
Case Timeline
| Date | Event |
|---|---|
| 2009-07-23 | Earliest Priority Date for '124, '140, '758 Patents |
| 2013-07-11 | Notice of Allowability for related patent cited in complaint |
| 2016-04-05 | U.S. Patent No. 9,304,758 Issued |
| 2018-04-10 | U.S. Patent No. 9,940,124 Issued |
| 2019-08-20 | U.S. Patent No. 10,387,140 Issued |
| 2023-07-24 | Complaint Filed |
II. Technology and Patent(s)-in-Suit Analysis
U.S. Patent No. 9,940,124 - "Modification of Terminal and Service Provider Machines Using an Update Server Machine"
The Invention Explained
- Problem Addressed: The patents identify the technical problem of updating software applications distributed across a large number of remote devices, particularly over wireless networks. Transmitting entire recompiled applications is described as inefficient, slow, and constrained by network bandwidth limitations ('140 Patent, col. 2:17-3:2; Compl. ¶¶12-14).
- The Patented Solution: The invention proposes a system architecture to modify application behavior without replacing the entire software. It utilizes a three-entity structure: a terminal machine (e.g., a smartphone), a service provider machine (e.g., a back-end server), and an update server machine (’140 Patent, FIG. 1; Compl. ¶15). Applications on the terminal and provider machines are designed with a specific two-part structure: a set of "computer-executable instructions" that can be directly executed by a processor, and a set of "code" that must first be translated by the application before it can be implemented (’140 Patent, FIG. 2; Compl. ¶¶16-17). The update server sends small "dialogue modules" containing this "code" to the terminal machine, which modifies the application's dialogue sequence and functionality without altering the underlying executable instructions (’140 Patent, col. 4:57-64; Compl. ¶16).
- Technical Importance: This method is intended to reduce network bandwidth consumption and enable more efficient, granular updates of remote software applications (Compl. ¶23).
Key Claims at a Glance
- The complaint asserts at least independent claim 1 of the ’124 patent (Compl. ¶28).
- The essential elements of independent claim 1 include:
- displaying a first prompt via a terminal application comprising first computer-executable instructions and first code;
- accepting a first data entry;
- communicating information to a service provider machine running a provider application, which itself comprises second computer-executable instructions and second code;
- storing at least a portion of the information for analysis; and
- receiving a "terminal dialogue module" at the terminal machine that updates a portion of the first code to produce first updated code, which in turn adapts the terminal application to display a second prompt.
- The complaint alleges infringement of "one or more claims," suggesting the right to assert dependent claims is reserved (Compl. ¶28).
U.S. Patent No. 10,387,140 - "Modification of Terminal and Service Provider Machines Using an Update Server Machine"
The Invention Explained
- Problem Addressed: The patent addresses the same technical challenges as the ’124 Patent regarding the inefficient updating of software on remote devices (’140 Patent, col. 2:34-49; Compl. ¶13).
- The Patented Solution: The ’140 Patent claims a similar system and method as the ’124 Patent, centered on the use of updatable "code" to modify application behavior without replacing core executable instructions (’140 Patent, Abstract). The system architecture is depicted as a three-entity structure involving a terminal machine, service provider machine, and an update server machine (’140 Patent, FIG. 1). Claim 1 of this patent adds specific limitations, including that the code modification occurs in response to a "trigger condition" and that the update originates from an "update server machine that is separate and distinct" from the terminal and service provider machines (’140 Patent, col. 42:50-59).
- Technical Importance: The solution aims to improve the efficiency of modifying applications on a network of remote devices, reducing demands on network bandwidth (’140 Patent, col. 7:31-33; Compl. ¶23).
Key Claims at a Glance
- The complaint asserts at least independent claim 1 of the ’140 patent (Compl. ¶47).
- The essential elements of independent claim 1 largely mirror those of claim 1 of the ’124 Patent, but add further qualifications, including:
- receiving the modifying code ("third code") is performed in response to the terminal machine satisfying a "trigger condition";
- the third code is received from an "update server machine that is separate and distinct" from the terminal and service provider machines; and
- the terminal and service provider machines include different types of processors.
- The complaint alleges infringement of "one or more claims," suggesting the right to assert dependent claims is reserved (Compl. ¶47).
U.S. Patent No. 9,304,758 - "Modification of Terminal and Service Provider Machines Using an Update Server Machine"
Technology Synopsis
The patent addresses the technical problem of efficiently updating software on numerous remote devices over bandwidth-constrained networks. The proposed solution is a system where applications are composed of both directly executable instructions and separate "code" that can be modified by small, remotely-sent "dialogue modules," thereby altering application behavior without requiring a full software replacement (Compl. ¶¶12-19, 22).
Asserted Claims
At least independent claim 1 is asserted (Compl. ¶71).
Accused Features
The accused features involve the Five Below mobile app and its back-end servers. The complaint alleges that data sent from the server to the app, such as order information, functions as a "dialogue module" that modifies the app's bytecode (the alleged "code") to change the user interface and dialogue flow (Compl. ¶¶73-76).
III. The Accused Instrumentality
Product Identification
The accused instrumentalities are the Five Below mobile applications for Android and iOS devices (the "Defendant app") and the associated back-end servers, software, and systems that support them (Compl. ¶7).
Functionality and Market Context
The Defendant app provides mobile ordering functionality, allowing users to create, review, and edit order information in a dialogue with Defendant's servers (Compl. ¶¶30, 32). The complaint alleges that this system represents a significant source of revenue for the Defendant (Compl. ¶4). The complaint includes Figure 1 from the asserted patents, which depicts a three-entity architecture that Plaintiff alleges maps onto the accused system (Compl. p. 7).
IV. Analysis of Infringement Allegations
9,940,124 Infringement Allegations
| Claim Element (from Independent Claim 1) | Alleged Infringing Functionality | Complaint Citation | Patent Citation |
|---|---|---|---|
| displaying a first prompt... by running a terminal application, the terminal application comprising first computer-executable instructions and first code... | The Five Below app prompts a user for order information. The app allegedly consists of the Android Runtime (ART) as the "computer-executable instructions" and the app's bytecode as the "code." | ¶30 | col. 7:5-15 |
| accepting a first data entry at the terminal machine... | The user provides input, such as order information, into the app. | ¶31 | col. 7:5-15 |
| communicating information... to the service provider machine... [which] uses a provider application comprising second computer-executable instructions and second code... | The app sends user data to Defendant's server. The server application is alleged to be a .NET program, with the CLR engine acting as the "second computer-executable instructions" and the .NET program as the "second code." | ¶32 | col. 8:1-15 |
| storing at least a portion of the information associated with the first data entry in memory for analysis. | The server stores order information for purposes such as analyzing orders and making rewards available to the user. | ¶33 | col. 12:35-39 |
| receiving, at the terminal machine, a terminal dialogue module that updates at least a portion of the first code to produce first updated code... | The app receives data from the server (e.g., in JSON format), which is alleged to be a "terminal dialogue module" that updates the app's bytecode ("first code"). | ¶34 | col. 9:38-49 |
| ...wherein the first updated code adapts the terminal application to display a second prompt... wherein at least one of the first code, the second code, and the first updated code comprise intermediate code. | The allegedly updated bytecode adapts the app to display new information or prompts, such as accessing new order details. The app's bytecode is identified as "intermediate code." | ¶34 | col. 8:12-15 |
Identified Points of Contention
- Scope Questions: A central question may be whether a data payload, such as a JSON object containing order details, meets the patent's definition of a "terminal dialogue module." The complaint cites a prior court construction requiring a "particular type of structure" (Compl. ¶20), raising the issue of whether ordinary data transfer qualifies as the structural module claimed by the patent.
- Technical Questions: The complaint alleges that receiving a JSON object "updates at least a portion of the first code to produce first updated code" (Compl. ¶34). A key technical dispute may be whether this interaction constitutes a genuine modification of the application's bytecode, as the claim requires, or if the application is simply processing received data without any change to its underlying code structure.
10,387,140 Infringement Allegations
| Claim Element (from Independent Claim 1) | Alleged Infringing Functionality | Complaint Citation | Patent Citation |
|---|---|---|---|
| [Elements regarding displaying prompt, accepting data, communicating, and storing are substantially similar to the '124 patent allegations] | [Functionality is alleged in a similar manner as for the '124 patent] | ¶¶49-52 | col. 42:26-47 |
| receiving, at the terminal machine, third code that modifies at least a portion of the first code to produce first updated code... | The app receives data (e.g., JSON) from the server, which is alleged to be "third code" that modifies the app's bytecode ("first code") to enable a modified dialogue sequence. | ¶53 | col. 42:48-54 |
| ...wherein receiving the third code is performed in response to the terminal machine satisfying a trigger condition... | The receipt of the "third code" is alleged to be triggered by user actions, such as connecting to the network or accessing the app. | ¶54 | col. 42:50-52 |
| ...the third code is received from an update server machine that is separate and distinct from the terminal machine and the service provider machine... | The complaint alleges the "update server machine" is "an Android, iOS or other smart phone or other computing device accessing the Accused System." | ¶55 | col. 42:55-59 |
| ...the terminal machine and the service provider machine include different types of processors... | The terminal machine (mobile device) allegedly uses an ARM-based processor, while the service provider machine (server) uses an x86-based processor. | ¶56 | col. 42:60-67 |
Identified Points of Contention
- Scope Questions: The complaint's allegation for the "update server machine" element appears to identify another user's device or the user's own device as the source of the update (Compl. ¶55). This raises a significant question of whether the accused system possesses the three-entity architecture required by the claim, or if it is a two-entity client-server system that does not map onto this limitation.
- Technical Questions: The complaint broadly defines a "trigger condition" as a user "connecting to the network and/or accessing the Defendant app" (Compl. ¶54). The court may need to determine if such routine user actions meet the claim requirement for a specific condition that initiates the patented update process.
V. Key Claim Terms for Construction
"dialogue module" (’124 Patent) / "third code" (’140 Patent)
- Context and Importance: The definition of this term is central to the dispute. The Plaintiff's theory equates data packets, such as JSON objects containing order information, with the claimed "dialogue module." The defense may argue this conflates simple data with the specific, structural software component described and claimed in the patents.
- Evidence for a Broader Interpretation: The complaint cites a prior litigation finding that a "dialogue module" can "contain code or other data" (Compl. ¶20, citing Exhibit D), which may support an argument that payloads other than pure "code" are covered.
- Evidence for a Narrower Interpretation: The patents define "code" as "information that must be translated by the software application before it can be implemented on the machine processor" (’140 Patent, col. 4:60-63). The complaint also cites a prior judicial holding that "module" refers to "a particular type of structure rather than to any structure for performing a function" (Compl. ¶20), which suggests a narrow, structural requirement beyond that of a simple data transmission.
"code"
- Context and Importance: Plaintiff’s infringement theory depends on equating the bytecode of the accused mobile and server applications with the claimed "code." The construction of this term will determine whether the accused products have the two-part structure (directly executable instructions and translatable "code") that is fundamental to the patents.
- Evidence for a Broader Interpretation: The term "code" is used in a general sense in the field of software.
- Evidence for a Narrower Interpretation: The patent specifications create a clear distinction between "computer-executable instructions" that "execute directly" and "code," which "must be translated before it can be executed" (’140 Patent, col. 8:5-15). The complaint itself cites a prior construction consistent with this narrow definition (Compl. ¶17, fn. 5).
"update server machine that is separate and distinct" (’140 Patent)
- Context and Importance: This term defines the three-entity architecture required by claim 1 of the ’140 patent. The Plaintiff’s infringement reading appears to collapse this structure by identifying another user's device as the "update server," which may be a critical point of contention.
- Evidence for a Broader Interpretation: An argument could be made that "separate and distinct" only requires a different logical or physical node, potentially allowing for peer-to-peer or distributed sources.
- Evidence for a Narrower Interpretation: The patent specification consistently depicts the "update server machine" as a discrete, third entity in the system architecture with the specific function of distributing dialogue modules (’140 Patent, FIG. 1, col. 5:9-11). This intrinsic evidence may support a narrower construction requiring a dedicated architectural role, not just any separate device on the network.
VI. Other Allegations
Indirect Infringement
The complaint alleges induced infringement, stating that Defendant instructs customers and end users to download and use the accused mobile applications in a manner that practices the claimed methods (Compl. ¶¶38, 40, 62, 80). Contributory infringement is also alleged on the basis that the accused instrumentalities are not staple articles of commerce and are especially adapted for infringing use (Compl. ¶¶41, 65, 83).
Willful Infringement
Willfulness allegations are based on Defendant's alleged knowledge of the patents "at least since the filing of this complaint" (Compl. ¶¶27, 46, 70).
VII. Analyst’s Conclusion: Key Questions for the Case
- A core issue will be one of definitional scope: can data transmissions common to client-server applications, such as JSON objects containing order information, be construed as the claimed "dialogue module"—a specific software "structure" containing translatable "code"—or does this represent an attempt to read the claims onto conventional data exchange?
- A key architectural question will be one of factual correspondence: does the accused system, as described in the complaint, actually employ a "separate and distinct" third entity functioning as an "update server machine" as required by claim 1 of the ’140 patent, or does the complaint’s infringement theory reveal a fundamental mismatch with the claimed three-entity system?
- A central technical question will be one of operational mechanism: what is the evidentiary basis for the allegation that receiving data "updates" the application's bytecode? The case may turn on whether the accused system performs a true modification of the application's underlying code structure or simply processes data within its existing, unmodified framework.