The present disclosure generally relates to data processing techniques for implementing a system of credits or points—a type of virtual currency—for use with any number and variety of network-based applications or services that provide a social media platform to facilitate interaction and the exchange of information between users. More specifically, the present invention relates to a system of credits intended to model a supply-and demand market for users' attention, and to influence users' behavior in connection with a network-based application or service.
Many network-based applications and services that are currently in use, or in development, have a social aspect. For example, users of these applications are encouraged to establish connections with other users, follow other users, or subscribe to other users and groups, for the purpose of forming virtual communities or forums via which the users can interact and exchange information. Many of these network-based applications and services rely partially, and in some cases almost entirely, on user-generated content—that is, content generated by the end-users of the particular application or service. The value of such applications and services to the users, and thus the success of any entity providing such applications and services, is heavily dependent upon the ability to attract and retain users who are willing to participate, for example, by interacting with other users and generating desirable, quality content that is to be shared with other users.
One common problem that frequently occurs with this type of network-based application or service is that certain users may become overwhelmed by being the recipient or subject of an extremely high volume of messages, requests or other types of user interactions. For example, in the context of a social network service, certain high-profile users such as celebrities (e.g., actors, athletes, politicians, etc.) may receive an extremely high number of messages and/or requests, or be the subject of other types of user interactions. In the context of a business or professional network service (e.g., a social network service for professionals and career-oriented persons), certain users whose profiles indicate they hold certain job titles (e.g., recruiter, CEO, board member, etc.) may receive a similarly large number of messages and/or requests. In the context of a question-and-answer application or service, via which users can direct questions to, and receive answers from, other users, certain users' attention may be highly sought after due to those users having previously provided valuable information in an answer to a question, having a certain job title, and/or being known to have expertise in a particular subject matter.
There are generally several undesirable effects of not having any mechanisms in place to control or manage the rate or level at which users seek the attention of other users (particularly certain high profile or prominent users), for example, by directing messages, requests, and/or questions to those users. First, because certain users are flooded with too many messages, requests, questions, and so forth, it becomes difficult if not impossible for these users to identify the important user interactions from the less important. Accordingly, a prominent or high-profile user who is overwhelmed by an extremely large volume of messages, requests, questions, or other users' interactions, may simply choose not to participate in the particular forum or virtual community. Consequently, if users who have expertise in certain subject areas are not responding or are responding at a low rate to messages, requests, or questions, then the users who are interested in these particular subject areas are less likely to spend the time interacting with the experts. The result is that the usefulness and value of the network-based application or service is diminished for all of its users.
Some embodiments of the invention are illustrated by way of example, and not limitation, in the figures of the accompanying drawings, in which:
Methods and systems for implementing a system of credits for use with a network-based application or service are described. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the various aspects of different embodiments of the present invention. It will be evident, however, to one skilled in the art, that the present invention may be practiced without these specific details.
Consistent with various embodiments of the invention, a network-based application or service includes a credit mechanism or system for allocating credits or points to end-users, and then requiring that the credits be used as payment in exchange for performing various actions that involve an interaction or exchange of information with one or more other users of the application or service. For example, in the context of a social network service, a user may be required to pay a certain number of credits to publish a status update message or share some web-based content via a data feed, also commonly referred to as a news feed or status update stream. In the context of a business or professional network service, a user may be required to pay a certain number of credits in exchange for directing a message or request to another user of the professional network service. In the context of a question-and-answer service, a user may be required to pay a certain number of credits to post a new question to be viewed by the users of the service, or to solicit an answer to a new or previously posted question from a particular user of the service. Generally, a credit mechanism or system as described herein can be advantageously implemented with any number and variety of network-based applications where it is important to limit or otherwise regulate the volume of messages or requests made to access a scarce resource, such as the attention of a user of a network-based application.
Consistent with some embodiments, users are initially allocated a certain number of credits that can be used to interact with other users. The particular type of interactions that are subject to the payment of credits are those interactions that will necessarily be seeking the time or attention of other users, and will generally be dependent upon the specific nature of the application or service. For instance, with a social network service or a professional network service, the interaction may involve, sharing a status update, messaging a user, making some specific type of request (e.g., a referral or endorsement request) of the user, and so forth. In the context of a question-and-answer service, the interaction may involve posting a new question to all users of the service, or soliciting an answer to a particular question from another user, for instance, by directing a new or previously posted question to the user. In addition to receiving an initial allocation of credits, users can earn credits in various ways by giving their time and attention, for example, by responding to messages or requests, answering questions, or making various other positive contributions to the forum or virtual community. Furthermore, at least with some embodiments, each user will have his or her credits periodically refreshed, for example, by receiving an additional allocation of credits to ensure that the user can continue to participate in the particular forum or virtual community. With some embodiments, the credits or points will have no direct association with a real (i.e., government issued) currency. However, with some alternative embodiments, credits or points may be purchased with, and/or redeemed for, a real currency.
Consistent with some embodiments, the number of credits required to interact with a user or group of users may be dependent upon the type or nature of the interaction (e.g., message, request, question, etc.), the category or subject matter to which the content of the interaction relates, and/or the specific user or group of users to whom the interaction is being directed. For instance, the number of credits required to send a message (e.g., such as an email) to a user may differ from the number of credits required to perform some other action, such as directing a specific question to the user, or sharing or publishing some content to a data feed accessible to the user. Additionally, the number of credits required to direct a particular message, request or question to one user may be different from the number of credits required to direct the same message, request or question to another user. The number of credits required to ask a user or group of users a question relating to one topic or subject matter (e.g., a question concerning a legal issue) may differ from the number of credits required to ask the same user or group a question relating to a different topic or subject matter (e.g., a question concerning a celebrity marriage).
With some embodiments, the credit mechanism or system provides what might be referred to as individual demand-based pricing for messaging other users. For example, the credit mechanism or system initially defines a default price to be paid to interact in a particular way with each user. The credit mechanism or system will then monitor the rate of interactions directed to each user, as well as the rate at which each user responds to interactions. The credit mechanism or system will then adjust the price for interacting with each user with a view to achieving some system-defined goal or objective. For instance, the credit mechanism or system may simply adjust the price to interact with a particular user to reflect the overall demand for that user's attention, where the measure of demand is derived based on various factors, for example, to include the historical rate of interactions being directed to the user by other users over a given period of time, the total number of interactions or requests generated by all users over a given period of time, the rate at which the user responds to requests generally as well as requests relating to specific topics or subject matters, and/or the overall number of user interactions relating to a specific topic or subject matter. For instance, the credit mechanism or system may increase the price to interact in some way with a particular user when the rate of interactions (e.g., messages, requests, questions, etc.) being directed to the particular user exceeds some target or threshold rate, or when the total number of user interactions occurring in a given time period exceeds some target or threshold rate. Similarly, the price to interact in some way with a particular user may be lowered when the rate of interactions (e.g., messages, requests, questions, etc.) being directed at the particular user falls short of some target or threshold rate, or the total number of user interactions falls short of some target or threshold number. Accordingly, at least with some embodiments, the price setting mechanism of the credit system attempts to ensure that each user receives a number of requests or interactions that is appropriate in view of various user-specific factors and system-defined goals or objectives. With some embodiments, a user can override the default settings of the price setting mechanism by raising or lowering the price to be paid to interact with the user, or by adjusting the desired threshold or target rate of interactions. For example, by increasing the price, the user is effectively signaling that he or she would like fewer interactions, while decreasing the price is effectively signaling that he or she would like more interactions. Similarly, increasing the target rate of interactions would cause the price to be decreased, while decreasing the target rate of interactions would cause the price to be increased.
By implementing a credit mechanism or system as described herein, a supply-and-demand market for a scarce resource (e.g., the attention of users) is established, thereby influencing how users of an application or service interact with the application or service generally, and other users in particular. For instance, if one views the attention of a user of an application or service as a scarce resource—for example, a resource that is short in supply—implementing a credit system via which users are required to pay credits when the users want access to the resource (e.g., by messaging, or directing a request or question to a user) will have the effect of decreasing the demand for the resource. Stated more simply, if a user has to pay credits or points in exchange for interacting with another user, the user is more likely to think twice about whether the value of the interaction equals the perceived value of the credits. Consequently, a credit system as described herein provides a sort of self-regulating quality assurance mechanism by compelling users to consider the value of spending or paying credits in exchange for taking some action that will necessarily require the attention of one or more other users of the application or service. Furthermore, with a system of credits, the prices select for the people who are interested the most, and have the available credits to spend, in the expertise and knowledge of other users. Additionally, because users are provided with credits or points in exchange for performing certain desired actions, the system of credits can be used to reward certain desirable behaviors, thereby influencing users to behave in a manner that is generally beneficial to the forum or virtual community. Ultimately, with a system of credits in place, the lower quality and/or less meaningful interactions and content contributions will diminish, thereby improving the overall quality of interactions and content contributions. The dynamic nature of the pricing and economic-based system described herein allows for a strong representation of the supply of and demand for user's attention as it relates to a web-based application or service that solicits user-generated content. As a result, the system maximizes value for contributors and solicitors and maximizes the amount of useful content that exists on the site. Other advantages of the inventive subject matter described herein will be readily apparent from the description of the figures that follows.
Many of the examples and illustrations provided herein describe or present the inventive subject matter in the particular context of a network- or web-based, question-and-answer application or service. However, skilled artisans will immediately recognize a host of other contexts, including other network-based applications and services, to which the inventive concepts are applicable. In particular, the inventive concepts described herein will find application in a wide-variety of network- or web-based services that rely on user-generated content and/or implement or leverage a social media platform enabling users to interact and exchange information. Some of the specific types of network-based applications or services to which the inventive concepts are applicable include, but are not limited to, social network services including business and professional network services, wiki-based dictionary or encyclopedia services, music and video services, and many others.
As is understood by skilled artisans in the relevant computer and Internet-related arts, each module or logic component shown in
As illustrated in
The question-and-answer application logic 10 is shown in
As illustrated in
The credit management module 24 also includes a price setting module 28. With some embodiments, the price setting module 28 facilitates what might be referred to as individual demand-based pricing for various user-interactions. For instance, with some embodiments, the price setting module 28 will, on a per-user basis, vary the price required to solicit an answer from a user to reflect the level of demand for that user's time and attention. The measure of demand may be based on the number of solicitations that the user has received over a period of time, as well as the prices paid by those who have solicited the user for an answer. In setting the price for a particular user, the price setting module 24 may also derive a measure of the user's willingness to provide time and attention, for example, by monitoring the rate at which the particular user has responded to solicitations for answers to questions, the rate at which the user expressly declines to answer a question (as opposed to simply ignoring the question), the rate at which the user adds other users to a blocked user list to prevent receiving further requests from those users, and/or by taking into consideration the number of solicitations desired as established by the user, or as a system default. Accordingly, if a particular user receives an extremely high volume of requests to answer questions, but has expressed a willingness to provide answers, the price setting module 28 may increase the price others have to pay to solicit an answer from that particular user, but less than if the particular user had expressed no willingness to respond to questions. In other words, the target rate of interactions for a particular user may be influenced (increased or decreased) based on their willingness to provide time and attention, as determined or derived by their level of responsiveness to the questions directed to the user. In addition to algorithmically regulating the price based on various inferred signals, the price-setting module 28 enables a user to manually adjust or change the price that others have to pay to solicit an answer from the user. Accordingly, if the user prefers to receive a greater number of requests for answers, the user may lower his or her price. If the user prefers to receive fewer requests for answers, the user can raise his or her price. With some embodiments, the user may be able to establish a desired volume of requests (e.g., three requests or solicitations per week), and the price setting module 28 will then adjust the price others have to pay to solicit an answer from the user with the objective of getting the user the desired number of requests or solicitations.
In addition, or as an alternative, to manipulating the price required to solicit an answer from a user based on the demand for the user's attention, with other embodiments the price setting module 24 may, on a per-user basis, vary the price required to solicit an answer from a user based on a variety of other factors and to achieve various system-defined goals or objectives. For example, with some embodiments, the price setting module 24 may establish a price for soliciting an answer to a question from a particular user based on any one or more combinations of the following factors: the number of solicitations that a user has received from other users over a particular period of time, the aggregate price paid by other users in soliciting answers from the particular user, the rate at which the user responds to all solicitations for answers, the rate at which the user responds to solicitations for answers relating to particular topics or subject matters, the total number of questions that have been posted, the number of questions posted to the service that relate to a certain topic or subject matter, the total number of unanswered questions, and/or the number of unanswered questions relating to a particular topic or subject matter. The particular factors that affect the price that others pay to solicit an answer from a particular user, and the particular influence those factors have on the price (e.g., increasing or decreasing the price) will generally depend on a particular desired goal or objective. In some instances, for example, the goal may be to find equilibrium between the amount of time or attention that a particular user is willing to provide, and the amount of time or attention that other users are seeking of the particular user. In other instances, the price setting module 24 may be used to influence (increase or decrease) the level of interactions (e.g., questions and answers) that are occurring in a particular topic or subject matter. In other instances, the price setting module 24 may be used to influence the rate at which questions are posted, and/or, answers are provided. In some instances, the price setting module 25 may be configured to consider various observed factors and to establish prices that will limit the posting of undesirable content, or spam. Of course, the price setting module 24 may be used to establish prices that convey a wide variety of other information, and/or to achieve a wide variety of other objectives and/or goals.
The credit management module 30 also includes a credit processing module 30. The credit processing module 30 generally receives as input information indicating the various actions that users have undertaken and, in response, will add or subtract credits from a user's credit account based on the particular price for performing the action. For example, when a user posts a question for all users of the service to view, the credit processing module 30 will debit a certain number of credits from the user's account. Similarly, when the user solicits an answer from another user, the credit processing module 30 will debit the appropriate number of credits from the user's account. In some instances, the credit processing module 30 simply processes transactions amongst users, such that the credits paid out by one user are simply transferred to another user. For example, when a first user solicits a second user for an answer, the entire price paid by the first user may be transferred to the second user. In other instances, credits that are paid may be banked or held by the system. For example, when a user pays to post a question, the paid credits may be held in an account of the credit management module. In other instances, the credit processing module is generating or creating new credits to be paid out. In yet other instances, the system may keep a percentage of any credit payment or transaction as a fee or commission.
The credit processing module 30 will add credits to users' accounts when users give their time and attention by taking certain actions that positively contribute to the virtual community or forum. For instance, with some embodiments, when a first user posts a question, and a second user follows the question, the first user earns a certain number of credits. These credits are, in a sense, a reward for positively contributing to the service, for example, by posting a question that is of interest to other users. When a first user is solicited for an answer to a particular question, the first user will receive credits for answering the question. When a first user solicits a second user for an answer to a question that was posted by a third user, the first user (who solicited the second user for the answer) will receive some credits when the answer provided by the second user is voted up by another user. If the user who votes up the answer is the same user who posted the question, the number of credits paid to the user who provided the answer may be increased. When a first user answers a question, the user who initially invited the first user to join the virtual community or forum may receive credits. Some examples of the particular actions that users might perform to earn credits are described in connection with the description of
With some embodiments, some of the various functional components of the question-and-answer application, including some of the various software modules, may be distributed across several server computers, providing application reliability and scalability. For instance, as illustrated in
As shown in
Consistent with some embodiments, the question-and-answer service is a stand-alone service accessible via its own unique address (e.g., URL or URI). With some embodiments, the stand-alone service may leverage its own social layer or social graph (e.g., such as the social graph data 38), or a social layer or social graph that is provided by an externally-hosted social network service. Accordingly, various relationships between users, as determined or defined by the question-and-answer service or an externally-hosted social network service, may be utilized to customize the functionality and features of the question-and-answer service. For example, search results displayed via a navigation bar may be ranked and ordered based, at least in part, on the relationship that the user performing the search has with other users, as that relationship is defined by the question-and-answer service, or an external social network service. Alternatively, with some embodiments, the question-and-answer service may be one of several applications or services that are associated with, and provided by, a social network service. For instance, the question-and-answer service may be accessible via the same address or domain by which users access a social network service, such that the question-and-answer service is hosted by the same entity providing the social network service.
Next, at method operation 54, the credit management module monitors various events and activities, such as the rate at which other users interact with the particular user, to derive a measure of demand for that particular user's time and attention. Additionally, the credit management module derives a measure of the user's willingness to interact with the application or service, for example, by monitoring the rate at which the particular user responds to the interactions directed to the user from other users. For example, in the context of a question-and-answer service, the credit management module may monitor the number of requests or solicitations to answer questions that are received by the particular user, as well as the number of responses or answers that are provided by the particular user. At method operation 56, the credit management module analyzes the rate at which the user is receiving requests or solicitations for answers, in view of the rate at which the user is responding, and compares this to some target or threshold rate. The target or threshold rate may be personalized for the particular user and may vary based on the user's willingness to provide time and attention, as determined by the user's response rate—that is, the ratio of the number of answers the user provides to the number of questions directed to the user. If, in view of the user's response rate, the rate of interactions (e.g., answers solicited from the user) is greater than the target rate for the given time period, then at method operation 58 the price for interacting with the user is increased. However, if the historical rate of interactions (e.g., answers solicited from the user) is less than the personalized target rate for the given time period, then at method operation 60 the price for interacting with the user is decreased. Of course, with some embodiments, the difference between the observed (i.e., historical) rate and the target rate will need to be sufficiently large before the price is changed, and there may be lower and upper bounds such that the price is not increased or decreased outside of the specified bounds.
Next, USER A solicits USER C for an answer to the question that was just posted, as indicated by reference number 64. Here again, USER A pays a certain number of credits. In this case, the number of credits is equivalent to the price for soliciting USER C for an answer to a question. That is, the number of credits that USER A pays to solicit an answer from USER C is specific to USER C, and may be referred to as USER C's “Ask to Answer” price. As indicated by reference number 66, USER C is notified of the request to answer the question posted by USER A, and also receives some credits for simply having received the request. This credit allocation to USER C is, in a sense, a payment for having been bothered with the request. The amount of credits received for simply receiving the request may be a portion of USER C's Ask to Answer price as paid by USER A. If USER C does not post an answer to the question, some portion of the credits that USER A has paid to solicit the answer from USER C will be refunded to USER A. This may occur, for example, if USER C does not answer within a particular time limit established as a system default, or as set by USER A.
After USER A posts the question, USER B views the question. For example, the question posted by USER A may be assigned to a particular topic that USER B is following, and therefore the question appears in a data feed that is personalized for USER B. Because USER B finds the question to be of interest, USER B decides to follow the question, as indicated by reference number 68. As a result of USER B following the question, USER A receives credits. For example, USER A is, in a sense, rewarded for having posted a question that is of interest to another user, as indicated by USER B following the question. Consequently, USER A is allocated a number of credits (e.g., ten credits) as indicated by reference number 70. In addition to following the question, USER B decides to solicit USER C for an answer to the question, as indicated by reference number 72. Accordingly, USER B pays an amount of credits equal to USER C's Ask to Answer price. As a result of USER B soliciting an answer from USER C, USER C is again notified of the request for an answer and receives some credits, as indicated by reference number 74.
When USER C posts an answer to the question, as indicated in
When USER A reads the answer provided by USER C, USER A may decide to vote up USER C's answer, as indicated in
With some embodiments, the question-and-service service may analyze a variety of factors when recommending or suggesting to a particular user the names of other users who may be well-suited to answer a particular question, or highly likely to provide an answer, if asked to provide an answer. For instance, such factors may include any one or more of the following, in various combinations: the relationship that exists between the users as defined in a social graph maintained by the service or an external social network service, the number of questions on a particular topic that a user has previously answered, the net number of positive votes that a user's answers have received for a certain topic, a high correlation between the topics assigned to a question and the topics being followed by a user, the designation or recognition of a user as a knowledge expert on a given topic, the recency of a user's activity or interaction with the service, a user's responsiveness to past requests in general, a user's responsiveness to past requests relating to particular topics, and the frequency with which user's specifically request a user to answer questions. The algorithm for identifying and presenting the suggested users may prevent a user whose ask to answer price exceeds the credit balance of the viewing user from being presented in the list of suggested users. With some embodiments, the list of suggested users may be sorted or arranged so that the users who have received the most requests, or the users who have been the most responsive to requests, are presented most prominently in the list (e.g., at or near the top of the list). With some embodiments, when displaying the list of suggested users who might be solicited for an answer to a question, a topic-specific biographical statement pertaining to each suggested user may be presented along with the suggested user's name, to provide the viewing user with some additional information for use in assessing whether or not to direct a question to the user.
With some embodiments, the number of credits that each user has may not be displayed publically. However, with some embodiments, in order to encourage users to take certain desirable actions, the number of credits that each user has may be displayed as a way to recognize certain users for their positive contributions to the application or service. One way this may be achieved is by displaying a leaderboard as shown in the example user interface or web page of
Skilled artisans will recognize that the methods and user interfaces presented herein are presented as specific examples of how the inventive concepts may be implemented. However, methods and user interfaces that differ from the specific examples presented herein may be consistent with the general scope and spirit of the inventive concepts. Particularly, the order in which certain method operations occur may vary from the examples presented herein without departing from the scope and spirit of the inventive concepts. Similarly, a wide variety of user interface elements different from those presented herein may be used to implement the inventive concepts described herein.
The various operations of example methods described herein may be performed, at least partially, by one or more processors that are temporarily configured (e.g., by software) or permanently configured to perform the relevant operations. Whether temporarily or permanently configured, such processors may constitute processor-implemented modules that operate to perform one or more operations or functions. The modules or logical components referred to herein may, in some example embodiments, comprise processor-implemented modules or logic.
Similarly, the methods described herein may be at least partially processor-implemented. For example, at least some of the operations of a method may be performed by one or more processors or processor-implemented modules. The performance of certain of the operations may be distributed among the one or more processors, not only residing within a single machine, but deployed across a number of machines. In some example embodiments, the processor or processors may be located in a single location (e.g., within a home environment, an office environment or as a server farm), while in other embodiments the processors may be distributed across a number of locations.
The one or more processors may also operate to support performance of the relevant operations in a “cloud computing” environment or as a “software as a service” (SaaS). For example, at least some of the operations may be performed by a group of computers (as examples of machines including processors), these operations being accessible via a network (e.g., the Internet) and via one or more appropriate interfaces (e.g., Application Program Interfaces (APIs).)
The example computer system 1500 includes a processor 1502 (e.g., a central processing unit (CPU), a graphics processing unit (GPU) or both), a main memory 1501 and a static memory 1506, which communicate with each other via a bus 1508. The computer system 1500 may further include a display unit 1510, an alphanumeric input device 1517 (e.g., a keyboard), and a user interface (UI) navigation device 1511 (e.g., a mouse). In one embodiment, the display, input device and cursor control device are a touch screen display. The computer system 1500 may additionally include a storage device (e.g., drive unit 1516), a signal generation device 1518 (e.g., a speaker), a network interface device 1520, and one or more sensors 1521, such as a global positioning system sensor, compass, accelerometer, or other sensor.
The drive unit 1516 includes a machine-readable medium 1522 on which is stored one or more sets of instructions and data structures (e.g., software 1523) embodying or utilized by any one or more of the methodologies or functions described herein. The software 1523 may also reside, completely or at least partially, within the main memory 1501 and/or within the processor 1502 during execution thereof by the computer system 1500, the main memory 1501 and the processor 1502 also constituting machine-readable media.
While the machine-readable medium 1522 is illustrated in an example embodiment to be a single medium, the term “machine-readable medium” may include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more instructions. The term “machine-readable medium” shall also be taken to include any tangible medium that is capable of storing, encoding or carrying instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of the present invention, or that is capable of storing, encoding or carrying data structures utilized by or associated with such instructions. The term “machine-readable medium” shall accordingly be taken to include, but not be limited to, solid-state memories, and optical and magnetic media. Specific examples of machine-readable media include non-volatile memory, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks.
The software 1523 may further be transmitted or received over a communications network 1526 using a transmission medium via the network interface device 1520 utilizing any one of a number of well-known transfer protocols (e.g., HTTP). Examples of communication networks include a local area network (“LAN”), a wide area network (“WAN”), the Internet, mobile telephone networks, Plain Old Telephone (POTS) networks, and wireless data networks (e.g., Wi-Fi® and WiMax® networks). The term “transmission medium” shall be taken to include any intangible medium that is capable of storing, encoding or carrying instructions for execution by the machine, and includes digital or analog communications signals or other intangible medium to facilitate communication of such software.
Although an embodiment has been described with reference to specific example embodiments, it will be evident that various modifications and changes may be made to these embodiments without departing from the broader spirit and scope of the invention. Accordingly, the specification and drawings are to be regarded in an illustrative rather than a restrictive sense. The accompanying drawings that form a part hereof, show by way of illustration, and not of limitation, specific embodiments in which the subject matter may be practiced. The embodiments illustrated are described in sufficient detail to enable those skilled in the art to practice the teachings disclosed herein. Other embodiments may be utilized and derived therefrom, such that structural and logical substitutions and changes may be made without departing from the scope of this disclosure. This Detailed Description, therefore, is not to be taken in a limiting sense, and the scope of various embodiments is defined only by the appended claims, along with the full range of equivalents to which such claims are entitled.