Displaying a visualization of a portion of a rolling horizon time series

A method performed by a processing system displays a graph of a portion of a rolling horizon time series corresponding to a realization of a realization time series adjacent to a graph of the realization time series.

BACKGROUND

Business information, such as forecasting information, is often stored in complex formats such as a rolling horizon time series. The complex nature of these formats can make the information difficult for a user to analyze and understand. Further, the volume of information stored may be too large for a user to consider in any given time frame. Techniques that provide insights into complex and voluminous information may be valuable for a user.

DETAILED DESCRIPTION

In the following detailed description, reference is made to the accompanying drawings, which form a part hereof, and in which is shown by way of illustration specific embodiments in which the disclosed subject matter may be practiced. It is to be understood that other embodiments may be utilized and structural or logical changes may be made without departing from the scope of the present disclosure. The following detailed description, therefore, is not to be taken in a limiting sense, and the scope of the present disclosure is defined by the appended claims.

As described herein, a rolling horizon time series visualization environment is provided for interactively visualizing portions of one or more rolling horizon time series with respect to a realization time series. The environment provides a user with the ability to select portions of one or more rolling horizon time series for visualization (e.g., graphical display) adjacent to a visualization of a realization time series according to a selected visualization format. Each visualized portion may represent a set of forecasts corresponding to the same time period as a given realization or a forecast time series with forecasts corresponding to different time periods than a time period of a given realization. The user may select an aggregation level and time granularity of the realization time series for display as well as a horizon length of the displayed portion of the rolling horizon time series. The visualizations allow the user to interactively understand relationships between one or more rolling horizon time series and a realization time series.

As used herein, a time series refers to a sequence of data points indexed by time, where each interval of time in the time series is referred to as a time period. A time series includes a data point for each time period of the time series. The number of time periods included in a time series is referred to as the horizon length (e.g., a horizon length may include 3 time periods). A rolling horizon time series includes at least two time series with the same horizon length but different sets of overlapping time periods.

As used herein, a forecast time series refers to a sequence of forecast data points (referred to herein as forecasts) indexed by time. Each forecast represents an amount of a forecast variable (i.e., a unit) that is predicted to be realized for a given time period. A forecast rolling horizon time series includes at least two forecast time series with the same horizon length but different sets of overlapping time periods.

As used herein, a realization time series refers to a sequence of realization data points (referred to herein as realizations) indexed by time. Each realization represents an amount of a realization variable (i.e., a unit) that is actually realized.

Rolling horizon time series may be used in forecasting processes, such as procurement forecasting processes involving a buyer and seller. By nature, forecasting processes generally involve an amount of error that is desirable to be minimized each time that forecasts are issued. In order to minimize the error, a user often seeks to gain understanding and insights into the type and amount of error in previous forecasts when compared to realizations. The interactive rolling horizon time series visualizations described herein may advantageously allow a user to analyze forecasts and realizations at selectable or aggregate points in a forecasting process.

FIG. 1is a block diagram illustrating one embodiment of rolling horizon time series visualization environment10for providing a rolling horizon time series visualizations60. Visualization environment10includes a set of forecast rolling horizon time series information20(1)-20(M) (where M is an integer that is greater than or equal to one), realization time series information30, and user inputs40that are provided to a rolling horizon time series visualization unit50(hereafter visualization unit50) to generate rolling horizon time series visualizations60. Visualization environment10allows a user that provides user inputs40to interactively select portions of one or more of rolling horizon time series information20(1)-20(M) for visualization with respect to a visualization of realization time series30according to a selected visualization format. The rolling horizon time series visualizations60of visualization environment10include an ability for the user to select the portions of the one or more of rolling horizon time series information20(1)-20(M) for graphical display adjacent to a graphical display of a realization time series30for selected or all realizations in realization time series30. The graphical displays allow the user to interactively visualize relationships between one or more of rolling horizon time series information20and realization time series30. Visualization environment10may be implemented using one or more processing systems (e.g., a processing system200shown inFIG. 7and described in additional detail below).

Each set of rolling horizon time series information20includes a set of at least two forecast time series22(1)-22(N) (where N is an integer that is greater than or equal to two) and aggregation information24that identifies aggregation levels (i.e., categories and/or sub-categories of information in forecast time series22(1)-22(N)). Forecast time series22(1)-22(N) collectively form a rolling horizon time series that covers Z time periods (where Z is an integer that is greater than or equal to three). Each forecast time series22includes a sequence of forecasts that span each time period in a horizon length P (i.e., P time periods) (where P is an integer that is greater than or equal to one and is less than Z). Thus, each forecast time series22includes a set of forecasts {ft, i+1, ft, t+2, . . . , ft, t+P} where ft, t+krepresents a forecast issued at time period t predicting an amount at time period t+k. In each time series22(except for the first time series22in the set), the first P−1 forecasts (i.e., forecasts ft, t+1to ft, t+P-1) represent updates to the existing forecasts made in previous time periods and the last forecast, ft, t+P, represents the first forecast issued for the time period t+P.

FIG. 2Ais a block diagram illustrating an example of rolling horizon time series information20with a set of forecast time series22(1)-22(5) issued at time periods1through5, respectively, and represented as rows in the diagram. Each forecast time series22(1)-22(5) has a horizon length of 3 (i.e., P=3) such that each forecast time series22(1)-22(5) includes 3 forecasts72as indicated by a bracket74for the horizon length of forecast time series22(1) which spans three columns in the diagram. Thus, forecast time series22(1) includes forecasts72for time periods2-4, and forecast time series22(2) includes forecasts72for time periods3-5, etc. Collectively, forecast time series22(1)-22(5) form a rolling horizon time series that covers 7 time periods (i.e., Z=7).

Each forecast time series22may include one or more aggregation levels76that are described by aggregation information24as illustrated by an example inFIG. 2B.FIG. 2Billustrates a breakdown of forecast time series22(1) into aggregation levels76. Each aggregation level76represents a category or a sub-category in a forecast time series22(1) that breaks down the overall forecast amount into forecast amounts for the category or sub-category. In the example ofFIG. 2B, aggregation levels76include an overall category (i.e., ALL), a first level of subcategories (i.e., REGION1and REGION2), and a second level of sub-categories (i.e., ITEM1and ITEM2). The aggregate of the forecast amounts for each sub-category is equal to the forecast amount for the overall category for each time period (e.g., for time period3, the sum of all items across all regions is equal to 6). Aggregation levels76allow a user to select a desired portion of forecast time series22(1) to be viewed. The desired portion may cover the overall category, a sub-category, or any aggregation of sub-categories at the same and/or different levels (e.g., the aggregation of ITEM1in REGION2and ITEM2in REGION1).

Referring back toFIG. 1, realization time series information30includes a realization time series32and aggregation information34. Realization time series32includes a realization for each time period, where each realization may be broken down into one or more aggregation levels described by aggregation information34.FIG. 3is a block diagram illustrating an example of a realization time series30that corresponds to the example of forecast time series22(1)-22(5) shown inFIGS. 2A-2B.

In the example ofFIG. 3, realization time series32includes realizations82for each aggregation level86, as represented by the rows in the diagram, for time periods2through8(i.e., Z=7), as represented by the columns in the diagram. Each aggregation level86represents a category or a sub-category in realization time series32that breaks down the overall realization amount into realization amounts for the category or sub-category. Aggregation levels86correspond to aggregation levels76for forecast time series22(shown inFIG. 2B), and the aggregate of the realization amounts for each sub-category is equal to the realization amount for the overall category for each time period (e.g., for time period3, the sum of all items across all regions is equal to 6). As with aggregation levels76, aggregation levels86allow a user to select, a desired portion of realization time series32to be viewed. The desired portion may cover the overall category, a sub-category, or any aggregation of sub-categories at the same and/or different levels (e.g., the aggregation of ITEM1in REGION2and ITEM2in REGION1).

User input40represents various types of inputs provided by a user to interactively select visualizations of rolling horizon time series information20(1)-20(M) and realization time series information30. User input40may select which rolling horizon time series information20(1)-20(M) to visualize as well as an aggregation level and/or time granularity of selected rolling horizon time series information20(1)-20(M) and realization time series information30. User input40may also select a horizon length used in visualizations of rolling horizon time series information20(1)-20(M). User input40may further select a visualization format for viewing relationships between rolling horizon time series information20(1)-20(M) and realization time series information30. The format may include selecting a realization for viewing visualizations of portions of one or more of rolling horizon time series information20with respect to realization time series32as will be described in additional detail below with reference toFIGS. 5A-5C. The format may also include selecting to view visualizations of numerous portions of rolling horizon time series information20simultaneously with respect to realization time series32as will be described in additional detail below with reference toFIGS. 6A-6B.

Visualization unit50generates rolling horizon time series visualizations60based on rolling horizon time series information20(1)-20(M), realization time series information30, and user inputs40. Visualization unit50may provide an indication of the available rolling horizon time series information20(1)-20(M) to a user to allow the user to select the desired rolling horizon time series information20(1)-20(M) for the visualization. Visualization unit50correlates the time periods in the selected rolling horizon time series information20(1)-20(M) and realization time series information30. Visualization unit50may provide an indication of time granularity levels (e.g., weeks, months, quarters, years, etc.) of the realization time series32to a user to allow the user to select a desired time granularity for the visualizations. Visualization unit50also correlates the aggregation levels in the selected rolling horizon time series information20(1)-20(M) and realization time series information30using aggregation information24and aggregation information34. Visualization-unit50may provide an indication of the available aggregation levels of the realization time series32to a user to allow the user to select a desired aggregation level for the visualizations. Visualization unit50determines the horizon lengths in the selected rolling horizon time series information20(1)-20(M) and may provide an indication of the duration of horizon lengths to a user to allow the user to select desired horizon lengths of the selected rolling horizon, time series information20(1)-20(M) for the visualizations. Visualization unit50further provide an indication of type of visualization formats to a user to allow the user to select desired visualization formats of the selected rolling horizon time series information20(1)-20(M) for the visualizations.

Based on user input40, visualization unit50generates rolling horizon time series visualizations60to include realization time series32with a selected time granularity and aggregation level. Visualization unit50further generates rolling horizon time series visualizations60to include the user selected portions of one or more rolling horizon time series20. Visualization unit50interactively updates rolling horizon time series visualizations60based on subsequent user inputs40.

FIGS. 4A-4Bare flowcharts illustrating embodiments of methods for displaying rolling horizon time series visualizations60. The methods ofFIGS. 4A-4Bwill be described with respect to visualization unit50(shown inFIG. 1) andFIGS. 5A-5C, which are graphical diagrams illustrating embodiments of rolling horizon time series visualizations, according to one embodiment.

In the embodiment ofFIG. 4A, visualization unit50detects a user input40corresponding to a realization of realization time series30displayed in a first visualization60as indicated in a block90.FIG. 5Aillustrates a visualization60that includes a graph130of realization time series30where the x-axis represents time periods and the y-axis represents units (i.e., forecast variables). Graph130connects sequential realizations of realization time series30across the displayed time periods. Visualization unit50generates graph130in accordance with user inputs40, default settings, and/or other predefined settings that select the aggregation level and time granularity of realization time series30.

In the embodiment ofFIG. 5A, a user provides a user input40by positioning a pointer140and/or providing a selection input. Pointer140may be controlled by a mouse, a touchpad, buttons, and/or any other suitable input device. A selection input may be made by positioning the pointer on a defined area, clicking a mouse, tapping a touchpad, pushing a button, and/or performing any other suitable function that indicates a selection. In other embodiments, a user provides a user input40in other suitable ways.

To select a realization in the embodiment ofFIG. 5A, the user positions pointer140over a defined area. In one embodiment, the defined area is an area in proximity to the time period on the x-axis corresponding to each realization as indicated by circles142. In another embodiment, the defined area is an area in proximity to the realization on graph130. In other embodiments, the defined area may be located in other suitable places and/or other methods of selecting a realization may be used.

As shown inFIG. 5B, the user selects a realization132corresponding to time period19by positioning pointer140over the circle142near time period19on the x-axis in one embodiment. The selection causes realization132to be visually highlighted on graph130by display a data mark. The selection may also cause graph130to be displayed with reduced opacity to avoid visually interfering with added visualizations (e.g., graphs120(1) and120(2)).

In this example, the user has previously provided user inputs40that select rolling horizon time series information20(1)-20(2) to display along with associated horizon lengths of 13 time periods and 8 time periods, respectively. In the example ofFIG. 5B, the user has also provided user inputs46that select a visualization format, referred to as “looking left”, that displays the sets of forecasts from the selected rolling horizon time series information20(1)-20(2) corresponding to the selected realization132. Accordingly, visualization unit50generates visualizations60to include a graph120(1) corresponding to the set of forecasts for time period19from time periods6through18from rolling horizon time series information20(1) and a graph120(2) corresponding to the set of forecasts for time period19from time periods11through18from rolling horizon time series information20(2). Visualization unit50causes graphs120(1) and120(2) to be displayed adjacent to graph130.

From the “looking left” visualization format inFIG. 5B, a user may see the forecasts that led up to realization132at time period19. In this example, the user can analyze the forecasts and readily discern that the forecasts from both rolling horizon time series information20(1) and20(2) significantly overestimated the number of units that were realized in time period19.

The user may return to the display shown inFIG. 5Aby positioning pointer140outside of circle142or cause other sets of forecasts for another realization to be displayed by positioning pointer140on a different circle142corresponding to the selected realization.

FIG. 5Cshows another example where user previously provided user inputs40that select rolling horizon time series information20(3)-20(4) to display along with associated horizon lengths of 13 time periods and 8 time periods, respectively. The user has also provided user inputs40that select a visualization format, referred to as “looking right”, that displays forecast time series22from the selected rolling horizon time series information20(3)-20(4) corresponding to the selected realization132(i.e. forecast time series22issued at time19).

Visualization unit50initially generates visualizations60to include only graph130. When the user selects realization132corresponding to time period19by positioning pointer140over the circle142near time period19on the axis in one embodiment, the selection causes realization132to be visually highlighted on graph130by display a data mark and may cause the portion of graph130to the left of realization132to be displayed with reduced opacity to avoid visually interfering with added visualizations (e.g., graphs120(3) and120(4)). Visualization unit50generates visualizations60to include a graph120(3) corresponding to forecast time series22for time period19from time periods20through32from rolling horizon time series information20(3) and a graph120(4) corresponding to the forecast time series22for time period19from time periods20through27from rolling horizon time series information20(4). Visualization unit50causes graphs120(3) and120(4) to be displayed adjacent to graph130.

From the “looking right” visualization format inFIG. 5C, a user may compare the forecasts issued at time period19for the upcoming time periods. In this example, the user can analyze the forecasts and see that the forecasts from rolling horizon time series information20(3) were above the number of units that were realized in time periods20-24and26-28. The user can also see that the forecast from rolling horizon time series information20(3) was below the number of units that were realized in time period25and that the number of units that were realized is not yet know for periods28-32. The user can further see that the forecasts from rolling horizon time series information20(4) were above the number of units that were realized in time periods20-27.

By positioning pointer140outside of circle142, the user may remove graph120(3) and graph120(4), cause the opacity of graph130to be returned to full opacity, and causes the visual highlight of realization132on graph130to be removed. The user may cause other sets of forecast time series22for another realization to be displayed by positioning pointer140on a different circle142corresponding to the selected realization.

FIG. 4Billustrates another embodiment of a method for displaying rolling horizon time series visualizations60. The method ofFIG. 4Bassumes that a visualization format, an aggregation level and time granularity of realization time series32, and a desired set of rolling horizon time series information20for visualization with desired horizon lengths have been determined for the visualizations (e.g., from user inputs40, default settings, and/or other predefined settings).

Visualization unit50displays a realization graph for a realization time series32as indicated in a block100. Visualization unit50displays the realization graph in accordance with the determined visualization format, the determined aggregation level and time granularity of realization time series32, and, for “looking right” formats, the determined, horizon lengths. For the “looking left” format, visualization unit50may display the realization graph similar to the graph130shown inFIG. 5Awhere x-axis covers all time periods of realization time series32. For the “looking right” format, visualization unit50may display the realization graph similar to the graph130shown inFIG. 5Abut with additional time periods to the right of the last realization of realization time series32to allow forecasts to be displayed for horizon lengths that extend beyond the last realization.

Visualization unit50provides an ability to select realizations in the realization graph as indicated in a block102. As described in the embodiments above, visualization unit50may provide this ability by providing a defined area for the user to position a pointer (e.g., a pointer over circles142or over points on the realization graph). Visualization unit50receives a user input40corresponding to a realization on the realization graph as indicated in a block104. The user input40may include the user positioning a pointer over a defined area as illustrated above inFIGS. 5B and 5C.

Visualization unit50displays forecast graphs of selected forecast rolling horizon time series information20corresponding to the realization as indicated in a block106. For the “looking left” format, visualization unit50displays the forecast graphs to include the set of forecasts in the horizon lengths corresponding to the selected realization as shown in the example ofFIG. 5B. Visualization unit50may also visually highlight the selected realization and reduce the opacity of the realization graph to minimize any visual interference with the forecast graphs. For the “looking right” format, visualization unit50displays the forecast graphs to include forecast time series22from the selected rolling horizon time series information20that correspond to the selected realization as shown in the example ofFIG. 5C. Visualization unit50may also visually highlight the selected realization and reduce the opacity of the realization graph to the left of the realization to emphasize the forecast graphs with respect to the relevant portion of the realization graph.

A determination is made by visualization unit50as to whether another realization is selected as indicated in a block108. Prior to another realization being selected, the previous realization may be de-selected by the user moving the pointer out of the defined area. When the de-selection occurs, visualization unit50may return the display to the initial display of the realization graph as described above for the “looking left” and “looking right” formats. In particular, visualization unit50removes the forecast graphs when a realization is de-selected. When a user selects another realization (e.g., by positioning the pointer over a defined area corresponding to the other realization), visualization unit50generates new forecasts graphs corresponding to the realization. In this way, the user can easily and arbitrarily select realizations to cause corresponding forecast graphs to be generated and updated when new realization selections are made.

In the embodiments ofFIGS. 4A-4Band5A-5C, a user selects a single realization from realization time series32to cause corresponding information from rolling horizon time series information20to be adjacently displayed. A user may also provide a user input40that selects portions of one or more selected rolling horizon time series information20to be simultaneously displayed for all realizations from realization time series32. These visualizations60are referred to as aggregate visualizations (i.e., aggregate rolling horizon time series visualizations) and are illustrated inFIGS. 6A-6B.

FIG. 6Aillustrates a “looking left” aggregate visualization160that parallels the “looking left” visualization format described above. In particular, visualization unit50generates visualizations60to include a forecast graph for each realization in realization time series32, where the forecast graphs collectively form aggregate visualization160. Each forecast graph includes a set of forecasts corresponding to the same time period as a corresponding realization (i.e., a portion of rolling horizon time series20). Each forecast graph is shown with solid lines with the x-axis representing a time period offset from a corresponding realization (e.g., −2 means the second time period prior to the time period of the realization) and the y-axis representing the units of the realization. A dashed line connects each forecast graph to the corresponding realization on the y-axis. Each realization is graphed along the y-axis at a common point on the x-axis axis.

Aggregate visualization160may allow a user to identify general trends that may not be readily apparent in viewing the visualizations corresponding to a single realization. For example, the user may notice a trend towards over-forecasting the realizations in the example ofFIG. 6A.

FIG. 6Billustrates a “looking right” aggregate visualization170that parallels the “looking left” visualization format described above. In particular, visualization unit50generates visualizations60to include a forecast graph for each realization in realization time series32, where the forecast graphs collectively form aggregate visualization170. Each forecast graph includes a forecast time series22issued in the same time period as the corresponding realization (i.e., a portion of rolling horizon time series20). Thus, each forecast in the forecast time series22corresponds to a respective time period after the time period of the corresponding realization. Each forecast graph is shown with solid lines with the x-axis representing a time period offset from a corresponding realization (e.g., 3 means the third time period subsequent to the time period of the realization) and the y-axis representing the units of the realization. A dashed line connects each forecast graph to the corresponding realization on the y-axis. Each realization is graphed along the y-axis at a common point on the x-axis axis.

Aggregate visualization170may also allow a user to identify general trends that may not be readily apparent in viewing the visualizations corresponding to a single realization. For example, the user may notice a trend towards over-forecasting the realizations in the example ofFIG. 6B.

The above rolling horizon time series visualization methods may advantageously allow a user to interactively analyze rolling horizon time series data. The methods allow the user to focus on desired aggregation levels, time granularity, and horizon lengths and inspect selected portions of the rolling horizon time series data in a simplified manner. The user may examine past revisions of forecasts as well as future-looking forecasts to identify trends within each view. As a result, the user may be able to effectively navigate large and complex data sets.

The visualization methods may find applicability in procurement engagements between a buyer and a seller. For example, the buyer may issue forecast time series for the expected purchase of certain units at various time periods. The seller may use the forecast time series to plan production of the units and may further issue response forecast time series for the expected production levels of the units at various time periods. In such a collaborative inventory management system, the forecast time series and the response forecast time series both form rolling time horizon time series. Accordingly, both the buyer and the seller may benefit by using the above, methods to analyze the forecast time series and the response forecast time series and further communication between the buyer and the seller to result in an enhanced purchasing scheme.

FIG. 7is a block diagram illustrating a processing system200configured to implement rolling horizon time series visualization environment10(shown inFIG. 1) to interactively display relationships between rolling horizon time series information20and realization time series information30.

Processing system200includes at least one processor202configured to execute machine readable instructions stored in a memory system204. Processing system200may also include any suitable number of input/output devices206, display devices208, ports210, and/or network devices212. Processors202, memory system204, input/output devices206, display devices208, ports210, and network devices212communicate using a set of interconnections214that includes any suitable type, number, and/or configuration of controllers, buses, interfaces, and/or other wired or wireless connections. Components of processing system200(for example, processors202, memory system204, input/output devices206, display devices208, ports210, network devices212, and interconnections212) may be contained in a common housing (not shown) or in any suitable number of separate housings (not shown).

Processing system200may execute a basic input output system (BIOS), firmware, an operating system, a runtime execution environment, and/or other services and/or applications stored in memory204(not shown) that includes machine readable instructions that are executable by processors202to manage the components of processing system200and provide a set of functions that allow other programs (e.g., visualization unit50) to access and use the components.

Processing system200represents any suitable processing device, or portion of a processing device, configured to implement the functions of visualization unit50as described above. A processing device may be a laptop computer, a tablet computer, a desktop computer, a server, or another suitable type of computer system. A processing device may also be a mobile telephone with processing capabilities (i.e., a smart phone), a digital still and/or video camera, a personal digital assistant (PDA), an audio/video device, or another suitable type of electronic device with processing capabilities. Processing capabilities refer to the ability of a device to execute instructions stored in a memory204with at least one processor202.

Each processor202is configured to access and execute instructions stored in memory system204. Each processor202may execute the instructions in conjunction with or in response to information received from input/output devices206, display devices208, ports210, and/or network devices212. Each processor202is also configured to access and store data in memory system204.

Memory system204includes any suitable type, number, and configuration of volatile or non-volatile storage devices configured to store instructions and data. The storage devices of memory system204represent computer readable storage media that store computer-readable and computer-executable instructions including visualization unit50and computer-readable data such as rolling horizon time series information20, realization time series information30, and rolling horizon time series visualizations60. Memory system204stores instructions and data received from processors202, input/output devices206, display devices208, ports210, and network devices212. Memory system204provides stored instructions and data to processors202, input/output devices206, display devices208, ports210, and network devices212. The instructions are executable by processing system200to perform the functions and methods of visualization unit50described herein. Examples of storage devices in memory system204include hard disk drives, random access memory (RAM), read only memory (ROM), flash memory drives and cards, and other suitable types of magnetic and/or optical disks.

Input/output devices206include any suitable type, number, and configuration of input/output devices configured to input instructions and/or data from a user to processing system200and output instructions and/or data from processing system200to the user. Examples of input/output devices206include a touchscreen, buttons, dials, knobs, switches, a keyboard, a mouse, and a touchpad.

Display devices208include any suitable type, number, and configuration of display devices configured to output image, textual, and/or graphical information to a user of processing system200. Examples of display devices208include a display screen, a monitor, and a projector.

Ports210include suitable type, number, and configuration of ports configured to input instructions and/or data from another device (not shown) to processing system200and output instructions and/or data from processing system200to another device.

Network devices212include any suitable type, number, and/or configuration of network devices configured to allow processing system200to communicate across one or more wired or wireless networks (not shown). Network devices212may operate according to any suitable networking protocol and/or configuration to allow information to be transmitted by processing system200to a network or received by processing system212from a network.

Although specific embodiments have been illustrated and described herein for purposes of description of the embodiments, it will be appreciated by those of ordinary skill in the art that a wide variety of alternate and/or equivalent implementations may be substituted for the specific embodiments shown and described without departing from the scope of the present disclosure. Those with skill in the art will readily appreciate that the present disclosure may be implemented in a very wide variety of embodiments. This application is intended to cover any adaptations or variations of the disclosed embodiments discussed herein. Therefore, it is manifestly intended that the scope, of the present disclosure be limited by the claims and the equivalents thereof.