Patent Publication Number: US-10320984-B2

Title: Techniques for L3 pairing in a contact center system

Description:
FIELD OF THE DISCLOSURE 
     This disclosure generally relates to pairing contacts and agents in contact centers and, more particularly, to techniques for L 3  pairing in a contact center system. 
     BACKGROUND OF THE DISCLOSURE 
     A typical contact center algorithmically assigns contacts arriving at the contact center to agents available to handle those contacts. At times, the contact center may have agents available and waiting for assignment to inbound or outbound contacts (e.g., telephone calls, Internet chat sessions, email). At other times, the contact center may have contacts waiting in one or more queues for an agent to become available for assignment. 
     In some typical contact centers, contacts are assigned to agents based on time of arrival, and agents receive contacts based on the time when those agents became available. This strategy may be referred to as a “first-in, first-out,” “FIFO,” or “round-robin” strategy. In other typical contact centers, other strategies may be used, such as “performance-based routing,” or a “PBR,” strategy. 
     Typical contact centers preferentially minimize overall agent idle time and overall contact waiting time. To that end, if contacts are waiting in a queue, a contact will be assigned to an agent soon after an agent becomes available for assignment. Similarly, if agents are idle, waiting for contacts to arrive, an agent will be assigned to a contact soon after a contact becomes available for assignment. 
     However, if a contact center uses a pairing strategy that is designed to choose among multiple possible pairings, it may be inefficient to choose the first available pairing for the sake of minimizing contact hold time or agent idle time. 
     In view of the foregoing, it may be understood that there may be a need for a system that enables improving the amount of choice available to improve the efficiency and performance of pairing strategies that are designed to choose among multiple possible pairings. 
     SUMMARY OF THE DISCLOSURE 
     Techniques for L 3  pairing in a contact center system are disclosed. In one particular embodiment, the techniques may be realized as a method for L 3  pairing in a contact center system comprising identifying, by at least one computer processor configured to operate in the contact center system, a first contact. The method may also comprise identifying, by the at least one computer processor, a first agent available for assignment to the first contact. The method may further comprise comparing, by the at least one computer processor, information about the first contact with information about the first agent. The method may additionally comprise postponing, by the at least one computer processor, by a first period of delay, assignment of the first agent and assignment of the first contact based on the comparison. 
     In accordance with other aspects of this particular embodiment, the first period of delay is at least thirty seconds or is not more than thirty seconds. 
     In accordance with other aspects of this particular embodiment, the first period of delay is at least two minutes or is not more than two minutes. 
     In accordance with other aspects of this particular embodiment, the first period of delay may end after a second agent becomes available for assignment or a second contact arrives at the contact center system. 
     In accordance with other aspects of this particular embodiment, the first period of delay may end after at least two additional agents become available for assignment or at least two additional contacts arrive at the contact center system. 
     In another particular embodiment, the techniques may be realized as a system for L 3  pairing in a contact center system comprising at least one computer processor configured to operate in the contact center system, wherein the at least one computer processor is further configured to perform the above method steps. 
     In another particular embodiment, the techniques may be realized as an article of manufacture for L 3  pairing in a contact center system comprising a non-transitory computer processor readable medium, and instructions stored on the medium, wherein the instructions may be configured to be readable from the medium by at least one computer processor configured to operate in the contact center system and thereby cause the at least one computer processor to operate so as to perform the above method steps. 
     The present disclosure will now be described in more detail with reference to particular embodiments thereof as shown in the accompanying drawings. While the present disclosure is described below with reference to particular embodiments, it should be understood that the present disclosure is not limited thereto. Those of ordinary skill in the art having access to the teachings herein will recognize additional implementations, modifications, and embodiments, as well as other fields of use, which are within the scope of the present disclosure as described herein, and with respect to which the present disclosure may be of significant utility. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       In order to facilitate a fuller understanding of the present disclosure, reference is now made to the accompanying drawings, in which like elements are referenced with like numerals. These drawings should not be construed as limiting the present disclosure, but are intended to be illustrative only. 
         FIG. 1  shows a block diagram of a contact center according to embodiments of the present disclosure. 
         FIG. 2  depicts a schematic representation of a contact center system timeline according to embodiments of the present disclosure. 
         FIG. 3  depicts a schematic representation of a choice-based pairing strategy according to embodiments of the present disclosure. 
         FIG. 4  shows a flow diagram of an L 3  pairing method according to embodiments of the present disclosure. 
         FIG. 5  shows a flow diagram of an L 3  pairing method according to embodiments of the present disclosure. 
         FIG. 6  shows a flow diagram of an L 3  pairing method according to embodiments of the present disclosure. 
     
    
    
     DETAILED DESCRIPTION 
     One example of a pairing strategy that is designed to choose among multiple possible pairings is a “behavioral pairing” or “BP” strategy, under which contacts and agents may be deliberately (preferentially) paired in a fashion that enables the assignment of subsequent contact-agent pairs such that when the benefits of all the assignments under a BP strategy are totaled they may exceed those of FIFO and other strategies such as performance-based routing (“PBR”) strategies. BP is designed to encourage balanced utilization of agents within a skill queue while nevertheless simultaneously improving overall contact center performance beyond what FIFO or PBR methods will allow. This is a remarkable achievement inasmuch as BP acts on the same calls and same agents as FIFO and PBR methods, utilizes agents approximately evenly as FIFO provides, and yet improves overall contact center performance. BP is described in, e.g., U.S. Pat. No. 9,300,802, which is incorporated by reference herein. Additional information about these and other features regarding pairing or matching modules using BP strategies (sometimes also referred to as “satisfaction mapping,” “SATMAP,” “routing system,” “routing engine,” etc.) is described in, for example, U.S. Pat. No. 8,879,715, which is incorporated herein by reference. 
     In some embodiments, a contact center may switch (or “cycle”) periodically among at least two different pairing strategies (e.g., between FIFO and an L 3  pairing strategy). Additionally, the outcome of each contact-agent interaction may be recorded along with an identification of which pairing strategy (e.g., FIFO, or BP enabled with L 3 ) had been used to assign that particular contact-agent pair. By tracking which interactions produced which results, the contact center may measure the performance attributable to a first strategy (e.g., FIFO) and the performance attributable to a second strategy (e.g., BP with L 3 ). In this way, the relative performance of one strategy may be benchmarked against the other. The contact center may, over many periods of switching between different pairing strategies, more reliably attribute performance gain to one strategy or the other. Benchmarking pairing strategies is described in, e.g., U.S. patent application Ser. No. 15/131,915, filed Apr. 18, 2016, which is incorporated herein by reference. 
       FIG. 1  shows a block diagram of a contact center system  100  according to embodiments of the present disclosure. The description herein describes network elements, computers, and/or components of a system and method for simulating contact center systems that may include one or more modules. As used herein, the term “module” may be understood to refer to computing software, firmware, hardware, and/or various combinations thereof. Modules, however, are not to be interpreted as software which is not implemented on hardware, firmware, or recorded on a processor readable recordable storage medium (i.e., modules are not software per se). It is noted that the modules are exemplary. The modules may be combined, integrated, separated, and/or duplicated to support various applications. Also, a function described herein as being performed at a particular module may be performed at one or more other modules and/or by one or more other devices instead of or in addition to the function performed at the particular module. Further, the modules may be implemented across multiple devices and/or other components local or remote to one another. Additionally, the modules may be moved from one device and added to another device, and/or may be included in both devices. 
     As shown in  FIG. 1 , the contact center system  100  may include a central switch  110 . The central switch  110  may receive incoming contacts (e.g., callers) or support outbound connections to contacts via a telecommunications network (not shown). The central switch  110  may include contact routing hardware and software for helping to route contacts among one or more contact centers, or to one or more PBX/ACDs or other queuing or switching components, including other Internet-based, cloud-based, or otherwise networked contact-agent hardware or software-based contact center solutions. 
     The central switch  110  may not be necessary such as if there is only one contact center, or if there is only one PBX/ACD routing component, in the contact center system  100 . If more than one contact center is part of the contact center system  100 , each contact center may include at least one contact center switch (e.g., contact center switches  120 A and  120 B). The contact center switches  120 A and  120 B may be communicatively coupled to the central switch  110 . In embodiments, various topologies of routing and network components may be configured to implement the contact center system. 
     Each contact center switch for each contact center may be communicatively coupled to a plurality (or “pool”) of agents. Each contact center switch may support a certain number of agents (or “seats”) to be logged in at one time. At any given time, a logged-in agent may be available and waiting to be connected to a contact, or the logged-in agent may be unavailable for any of a number of reasons, such as being connected to another contact, performing certain post-call functions such as logging information about the call, or taking a break. 
     In the example of  FIG. 1 , the central switch  110  routes contacts to one of two contact centers via contact center switch  120 A and contact center switch  120 B, respectively. Each of the contact center switches  120 A and  120 B are shown with two agents each. Agents  130 A and  130 B may be logged into contact center switch  120 A, and agents  130 C and  130 D may be logged into contact center switch  120 B. 
     The contact center system  100  may also be communicatively coupled to an integrated service from, for example, a third party vendor. In the example of  FIG. 1 , L 3  pairing module  140  may be communicatively coupled to one or more switches in the switch system of the contact center system  100 , such as central switch  110 , contact center switch  120 A, or contact center switch  120 B. In some embodiments, switches of the contact center system  100  may be communicatively coupled to multiple L 3  pairing modules. In some embodiments, L 3  pairing module  140  may be embedded within a component of a contact center system (e.g., embedded in or otherwise integrated with a switch). The L 3  pairing module  140  may receive information from a switch (e.g., contact center switch  120 A) about agents logged into the switch (e.g., agents  130 A and  130 B) and about incoming contacts via another switch (e.g., central switch  110 ) or, in some embodiments, from a network (e.g., the Internet or a telecommunications network) (not shown). 
     A contact center may include multiple pairing modules (e.g., a BP module and a FIFO module) (not shown), and one or more pairing modules may be provided by one or more different vendors. In some embodiments, one or more pairing modules may be components of L 3  pairing module  140  or one or more switches such as central switch  110  or contact center switches  120 A and  120 B. In some embodiments, an L 3  pairing module may determine which pairing module may handle pairing for a particular contact. For example, the L 3  pairing module may alternate between enabling pairing via the BP module and enabling pairing with the FIFO module. In other embodiments, one pairing module (e.g., the BP module) may be configured to emulate other pairing strategies. For example, an L 3  pairing module, or an L 3  pairing component integrated with BP components in the BP module, may determine whether the BP module may use BP pairing or emulated FIFO pairing for a particular contact. In this case, “BP on” may refer to times when the BP module is applying the BP pairing strategy, and “BP off” may refer to other times when the BP module is applying a different pairing strategy (e.g., FIFO). 
     In some embodiments, regardless of whether pairing strategies are handled by separate modules, or if some pairing strategies are emulated within a single pairing module, the single pairing module may be configured to monitor and store information about pairings made under any or all pairing strategies. For example, a BP module may observe and record data about FIFO pairings made by a FIFO module, or the BP module may observe and record data about emulated FIFO pairings made by a BP module operating in FIFO emulation mode. 
       FIG. 2  depicts a schematic representation of a contact center system timeline according to embodiments of the present disclosure. In a given period of time (e.g., over several minutes, several hours, a day), the number of agents free or available to connect to contacts, or the number of contacts waiting in queue, will vary continuously as contacts arrive and depart the contact center system. The example of  FIG. 2  depicts the capacity of a contact center system over a period of time along the x-axis from time “0” to time “50” (e.g., 0 minutes to 50 minutes). The y-axis depicts the number of free agents or the number of contacts in queue above and below the x-axis, respectively. 
     At time  0  (e.g., when the contact center first opens at the beginning of the day), there are 10 agents available and waiting for contacts to arrive. Periods of time when a contact center has a surplus of available agents are referred to as “L 1 ” environments. If a choice-based pairing strategy such as BP is used, the choice-based pairing strategy may choose from among any (or a subset) of the available agents when a contact arrives. 
     As contacts arrive, and agents become occupied while communicating with those contacts, the number of available agents may decrease, as shown in  FIG. 2  from time  0  to approximately time  5 . The contact center is operating in an L 1  environment for this entire duration, but the choice available to BP or another choice-based pairing strategy becomes increasingly limited—instead of having as many as ten (or more) agents available to choose among, by about time  5  there are only two or three agents to choose among. 
     At other periods of time, there may be a shortage of agents, and contacts begin to queue, waiting for agents to become available for connection, as shown in  FIG. 2  from about time  7  to about time  21 . Periods of time when a contact center has a shortage of available agents are referred to as “L 2 ” environments. If a choice-based pairing strategy such as BP is used, the choice-based pairing strategy may choose from among any (or a subset) of the waiting contacts when an agent becomes available. 
     As agents become available to connect with contacts waiting in the queue, the size of the queue may decrease, as shown in  FIG. 2  from approximately time  14  to about time  21 . The contact center is operating in an L 2  environment for this entire duration, but the choice available to BP or another choice-based pairing strategy becomes increasingly limited—instead of having as many as ten (or more) contacts available to choose among at about time  14 , by about time  21  there are only two or three contacts in queue to choose among. 
     At some points in time, a contact center will transition from an L 1  state to an L 2  state (e.g., point  210 A at about time  6  and point  210 C at about time  40 ) or vice versa, from an L 2  state to an L 1  state (e.g., point  210 B at about time  23 ). These crossover points along the x-axis (labeled the “1:1” line) occur when no choice is available to BP or another choice-based pairing strategy. For example, there may be a single contact waiting in queue, which may be paired with whichever agent happens to become free next. Or there may be a single agent waiting idle, which may be paired with whichever contact happens to arrive at the contact center next. 
     In some situations (not shown), a contact center may reach the “1:1” line and then bounce back up into L 1  (or bounce back down into L 2 ). No L 1 -to-L 2  or L 2 -to-L 1  transition occurs, but there is still a time at which no choice is available to BP. 
     In some situations (not shown), a contact center may remain along the “1:1” line for an extended period of time. In fact, a typical contact center may consider this line to indicate when the contact center is operating at a “perfect” capacity, with neither a surplus nor a shortage of agents for the given level of demand (e.g., number, frequency, and duration of contacts arriving at the contact center). In these situations, a BP pairing strategy could go for an extended period of time with no choices available other than the “1 agent: 1 contact” default choice. These points in time (or periods of time) when the contact center is operating along the “1:1” line, when a contact center has neither a surplus nor a shortage of available agents, are referred to as “L 0 ” environments. 
       FIG. 3  depicts a schematic representation of a choice-based pairing strategy according to embodiments of the present disclosure. When choice is limited, choice-based pairing strategies may suffer from suboptimal performance.  FIG. 3  shows an example of a performance estimate or performance simulation of a choice-based pairing strategy. When there are many contacts in queue (“calls in queue” as in  FIG. 3 ) (e.g., at point  320 ), or when there are many agents free (e.g., at point  330 ), BP or another choice-based pairing strategy may perform optimally (e.g., at or near “100%” instant performance or efficiency). 
     However, as the number of contacts in queue or free agents dwindle, there are fewer choices available to BP, and the performance or efficiency of BP could drop. In an L 0  environment (e.g., at point  310 ), the instant performance or efficiency of BP is considered to be 0%, insofar as BP (without L 3  pairing) is incapable of making a choice different from the pairing that any other non-L 3  pairing strategy could make. In other words, if there is only one contact waiting for an agent, and only one agent waiting a contact, both FIFO and BP will pair that one contact with that one agent, with no other choice to make. As choice increases, either as contacts fill a queue in an L 2  environment, or more agents become available in an L 1  environment, performance steadily increases toward optimal instant performance. 
     In the example of  FIG. 3 , 50 calls in queue and 50 agents free are the points  320  and  330  at which this pairing strategy is expected to reach peak performance. However, in other embodiments or real-world contact center systems, peak performance may be reached at varying levels of agent shortage or surplus (e.g., greater than 3 choices available, greater than 7 choices available, greater than 20 choices available, etc.). 
     In situations such as L 0  environments in which the choice available to BP is too limited, it may be advantageous to delay or otherwise postpone connecting an agent to a contact. Introducing a delay could allow time for another agent or another contact to become available. If a contact center is operating in L 0 , and another agent arrives, the contact center will enter an L 1  environment with two agents to choose between instead of being forced into the default selection. Similarly, if a contact center is operating in L 0 , and another agent arrives, the contact center will enter an L 2  environment with two contacts to choose between instead of being forced into the default selection. 
     In some embodiments, it may be desirable to delay even if the contact center already has some choice (e.g., already operating in L 1  or L 2 ), but the choice is limited. For example, if only ten contacts are waiting in queue when an agent becomes available, the pairing strategy of  FIG. 3  is expected to have an instant performance of only 60%. It may be desirable to delay until closer to twenty contacts are waiting, at which point the expected instant performance would be closer to 80%. 
     When a delay is permitted, it is possible to enter a hybrid environment that is neither pure L 1  nor pure L 2 . For example, consider a contact center in which there are two contacts in queue, and only one agent is available. Following a delay, a second agent could become available, resulting in an environment in which there are multiple contacts in queue and multiple agents available for connection. Periods of time when a contact center has multiple contacts in queue and multiple free agents are referred to as “L 3 ” environments. In the present disclosure, an L 3  pairing module is a pairing module capable of causing and handling L 3  environments within a contact center system. 
       FIG. 4  shows a flow diagram of an L 3  pairing method  400  according to embodiments of the present disclosure. At block  410 , a first contact in queue may be identified. In L 0  and L 1  environments, the first contact may be the only contact waiting in queue. 
     At block  420 , a first available agent may be identified. In L 0  and L 2  environments, the first available agent may be the only available agent. 
     At this point, a typical contact center may connect the first contact with the first agent. If the contact center is using a choice-based pairing strategy such as BP, this connection may be suboptimal, and the choice-based pairing strategy will operate at low instant performance or efficiency. Instead, at block  430 , the L 3  pairing method  400  may wait for a second contact to arrive or a second agent to become available, thereby increasing the amount of choice available to BP or another choice-based pairing strategy. In some situations, this waiting or delay step may result in a contact center that is operating in an L 3  environment. 
     In some embodiments, the L 3  pairing method may wait at block  430  for a threshold amount of time, during which more than one contact may arrive or more than one agent may become available. In other embodiments, the L 3  pairing method may wait at block  430  for up to a maximum amount of time, after which it makes a connection regardless of whether or how much additional choice was made available to the pairing strategy. 
     At block  440 , a choice of pairing may be made. In embodiments where the second contact has arrived, the first available agent may be preferably paired with a selected one of at least the first and second contacts. In situations where the second agent has become available, the first contact may be preferably paired with a selected one of at least the first and second agents. In situations where there are multiple agents and multiple contacts (L 3 ), a selected one of at least the first and second agent may be preferably paired with a selected one of at least the first and second contact. 
       FIG. 5  shows a flow diagram of an L 3  pairing method  500  according to embodiments of the present disclosure. L 3  pairing method  500  is similar to L 3  pairing method  400  ( FIG. 4 ) insofar as it uses a delay mechanism to increase choice. However, whereas pairing method  400  can result in an L 3  environment, pairing method  500  compels an L 3  environment. 
     At block  510 , a first contact may be identified. 
     At block  520 , a first available agent may be identified. 
     At block  530 , L 3  pairing method  500  may wait for a second contact to arrive, and, at block  540 , L 3  pairing method  500  may wait for a second agent to arrive, resulting in an L 3  environment, in which multiple agents and multiple contacts are available for pairing. 
     At block  550 , in some embodiments, a selected one of at least the first and second contacts may be paired to a selected one of at least the first and second agents. In other embodiments, BP may “batch” pairings, such as by pairing both the first agent with one of the first and second contacts, and the second agent with the other of the first and second contacts. In this way, BP may make multiple high-performance/efficiency pairings at once without further delay. In some embodiments, the contact center system may be able to effect each of these pairings/connections simultaneously, or nearly simultaneously, such as by a single batch instruction from an L 3  pairing module. In other embodiments, the L 3  pairing module may serialize multiple pairing/connection instructions to effect each of these multiple pairings. The serialized instructions may be made nearly simultaneously such that there is no delay or only minimal delay between routing one connection and the next. 
     In some embodiments, L 3  pairing method  400  described above with respect to  FIG. 4  may also be configured to perform batch pairings in situations in which an L 3  environment arises. 
     It is possible for L 3  environments to arise without introducing a delay or postponing selecting/choosing a pairing. For example, two or more agents may become available simultaneously or nearly simultaneously when there are multiple contacts in queue, resulting in a transition from L 2  to L 3 . Similarly, two or more contacts may arrive simultaneously or nearly simultaneously, resulting in a transition from L 1  to L 3 . In some contact center systems, the workforce may be instantaneously increased. For example, if there are many contacts waiting in queue, the contact center may modify the pool of logged-in agents to add more than one agent to the pool. Each of these newly-added agents would be available simultaneously or nearly simultaneously, resulting in a transition from L 2  to L 3 . 
       FIG. 6  shows a flow diagram of an L 3  pairing method  600  according to embodiments of the present disclosure. At block  610 , a plurality of contacts waiting in queue for assignment may be identified. At block  620 , a plurality of agents available for assignment to any (or at least some) of the plurality of contacts may be identified. 
     Consequently, the contact center is currently in an L 3  environment, regardless of whether it was achieved through a delay technique or other circumstances that gave rise to L 3 . At block  630 , in some embodiments, one of the plurality of agents may be paired with one of the plurality of contacts that was not the earliest contact to arrive. In some embodiments, the L 3  pairing method  600  may batch-pair multiple agents with multiple contacts, and in some situations it may be the case that none of the preferentially paired contacts was the earliest contact to arrive. 
     Similarly, in some embodiments, one of the plurality of contacts may be paired with one of the plurality of agents that was not the longest-waiting agent (or best-performing agent) that would have been selected according to a FIFO-based fairness metric (or PBR strategy). In some embodiments, the L 3  pairing method  600  may batch-pair multiple contacts with multiple agents, and in some situations it may be the case none of the preferentially paired agents was the longest-waiting agent (or best-performing agent, etc.). 
     It is possible for an L 3  pairing module to perform or otherwise emulate a FIFO or FIFO-like pairing strategy while the contact center system is an L 3  state. In these situations, the L 3  pairing module may always pair, for example, the longest-waiting contact (or the higher-priority contact) at the head of the queue with, for example, the longest-waiting agent, regardless of the other contacts in queue and available agents. In this sense, a FIFO pairing strategy is indifferent to L 1  (agent surplus), L 2  (agent shortage), and L 3  (multiple agents and multiple contacts) environments, operating no more or less efficiently as in an L 0  state. However, an L 3 -enabled choice-based pairing strategy such as BP with L 3  can operate at higher average performance/efficiency when L 1 /L 2 /L 3  states with increased choice are possible. 
     In some embodiments, an L 3  pairing module (e.g., L 3  pairing module  140 ) or a similar module may be capable of making an automated workforce management recommendation or decision within the contact center system. For example, instead of preferentially trying to minimize contact hold time and agent free time, which causes the contact center to hover around L 0  or in periods of L 1  and L 2  with limited amounts of choice, the contact center system could be advised or instructed to use a certain number of agents that is likely to keep the contact center system in high-choice environments. In some situations, the recommendation could be to staff additional agents (e.g., 10 additional agents, 100 additional agents, etc.) to increase the expected amount of time spent in high-choice L 1  . In other situations, the recommendation could be to staff fewer agents (e.g., 10 fewer agents, 100 fewer agents, etc.) to increase the expected amount of time spent in high-choice L 2 . 
     In some embodiments, the workforce management instruction or recommendation may balance the cost of employing additional agents and increasing agent free time against the benefit of reducing contact wait time, or balancing the cost-savings of employing fewer agents and decreasing agent free time against the cost of increasing contact wait time. These recommendations may take into account the desired metric to optimize. For example, if the contact center management desires to optimize customer satisfaction, it may desirable to make a recommendation that errs on being in high-choice L 1  (agent surplus) rather than high-choice L 2  (agent shortage). In either case, the recommendation or instruction may balance the cost of increasing agent free time or increasing contact wait time against the improved performance/efficiency of BP or another choice-based pairing strategy operating in higher-choice L 1 , L 2 , or L 3  environments, and avoiding inefficient L 0  environments in which only a default choice is available. 
     At this point it should be noted that L 3  pairing in a contact center system in accordance with the present disclosure as described above may involve the processing of input data and the generation of output data to some extent. This input data processing and output data generation may be implemented in hardware or software. For example, specific electronic components may be employed in an L 3  pairing module or similar or related circuitry for implementing the functions associated with L 3  pairing in a contact center system in accordance with the present disclosure as described above. Alternatively, one or more processors operating in accordance with instructions may implement the functions associated with BP in a contact center system in accordance with the present disclosure as described above. If such is the case, it is within the scope of the present disclosure that such instructions may be stored on one or more non-transitory processor readable storage media (e.g., a magnetic disk or other storage medium), or transmitted to one or more processors via one or more signals embodied in one or more carrier waves. 
     The present disclosure is not to be limited in scope by the specific embodiments described herein. Indeed, other various embodiments of and modifications to the present disclosure, in addition to those described herein, will be apparent to those of ordinary skill in the art from the foregoing description and accompanying drawings. Thus, such other embodiments and modifications are intended to fall within the scope of the present disclosure. Further, although the present disclosure has been described herein in the context of at least one particular implementation in at least one particular environment for at least one particular purpose, those of ordinary skill in the art will recognize that its usefulness is not limited thereto and that the present disclosure may be beneficially implemented in any number of environments for any number of purposes. Accordingly, the claims set forth below should be construed in view of the full breadth and spirit of the present disclosure as described herein.