Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
DYNAMIC BETTING SYSTEM, METHOD AND COMPUTER PROGRAM PRODUCT
Document Type and Number:
WIPO Patent Application WO/2012/028947
Kind Code:
A1
Abstract:
A dynamic betting valuator system, method and computer program product which enables bettors to make, withdraw, and increase/decrease the stake of bets on the outcome of particular events at any time is disclosed. Specialized stock and stock pricing mechanisms are applied in a betting context to create the dynamic betting valuator. The systems, methods and computer program product treat the placing of a bet by a bettor as a purchase of shares in that particular outcome for the particular event. Each potential outcome for a given event has an associated "outcome stock" in which players are buying shares. Each bet amount on a certain outcome is converted into a number of shares of that outcome stock. A bettor may change his bet, i.e. have the computer program product sell shares in a particular outcome stock, prior to the event taking place, potentially making a profit from the bet despite the outcome not yet having been determined.

Inventors:
IVANOV ALEKSANDAR (DE)
Application Number:
PCT/IB2011/002021
Publication Date:
March 08, 2012
Filing Date:
September 02, 2011
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
CROWDPARK GMBH (DE)
IVANOV ALEKSANDAR (DE)
International Classes:
G07F17/32; G06Q50/00
Domestic Patent References:
WO2003069524A22003-08-21
Foreign References:
US7302412B12007-11-27
GB2400467A2004-10-13
EP1005001A22000-05-31
US20070082730A12007-04-12
US20070087821A12007-04-19
US6033308A2000-03-07
Download PDF:
Claims:
What is claimed is:

1. A method for dynamic betting, comprising the steps of:

identifying one or more events and at least two possible outcomes for each of said identified one or more events;

setting initial odds for each possible outcome of said identified one or more events;

presenting to a plurality of users, each user having an account, information indicating said identified one or more events, the possible outcomes of said identified one or more events, and the associated odds for each possible outcome;

receiving a selection of an event by a user;

receiving a selection of a possible outcome of said selected event by said user; receiving an indication of a desired stake in the selected possible outcome of said selected event from said user;

determining a first value that indicates the value of the user's desired stake in the selected possible outcome of said selected event;

determining a second value that indicates the value of the user's initial stake in the selected possible outcome of said selected event;

determining a difference between said first and second values;

providing a first update to the user's account to reflect a current stake in the selected possible outcome of said selected event based on said difference;

determining current odds for the selected possible outcome of said selected event; identifying the actual outcome of said selected event; and

providing a second update to the user's account based on said current stake, said current odds, and said actual outcome.

2. The method of claim 1 , wherein the step of updating the user's account further

comprises:

updating a quantity of the user's free cash according to:

wherein FC/,ai is the user's current free cash, FC^t-i is the user's initial free cash, and Dji9 represents said difference between the value of user's desired and initial stakes in the possible outcome of the event.

3. The method of claim 1 , wherein said desired stake, initial stake, and current stake are quantities of shares in the possible outcome of said event in a dynamic betting marketplace and there is a total number of outstanding shares associated with said possible outcome in the dynamic betting marketplace.

4. The method of claim 3, wherein the step of updating the user's account further comprises:

updating the quantity of the user's current shares in the outcome of said event according to: wherein Ui,g,t is the user's current quantity of shares in the possible outcome, t//(fti. 1 is the user's initial quantity of shares in the possible outcome, and ki>g represents a change in the total number of outstanding shares for the possible outcome of said event based on said first update.

5. The method of claim 3, further comprising:

determining the current value of a number of shares (u,) for a possible outcome of an event according to:

wherein v is a market state, and B is a liquidity parameter.

6. The method of claim 3, further comprising:

determining a price (p,) for a share of the possible outcome of said event according to:

wherein v indicates the number of shares in the possible outcome of said event that are owned by users and B is a liquidity parameter.

7. The method of claim 1 , wherein at least one of the user's desired stake, initial stake, or current stake is expressed as an amount of a currency unit.

8. The method of claim 7, wherein there is a total number of outstanding shares associated with said possible outcome in a dynamic betting marketplace, the method further comprising:

converting at least one of the user's desired stake, initial stake, or current stake into a number of shares of the outcome of said event.

9. The method of claim 8, wherein the converting step is accomplished according to:

ktO>. W, B~) = B in - £«p (¾) " ■

wherein D is amount of said desired stake, B is a liquidity factor, and v is a number of shares associated with the outcome of said event.

10. The method of claim 1 , further comprising:

identifying each user having a current stake in the outcome of said event, wherein said current stake is a quantity of shares in the possible outcome of said event associated with the account of each of said identified users;

updating the account of each user based on said current stake, said current odds, and said actual outcome; and

removing all shares of said outcome for said event from each user's account.

11. A system for providing a dynamic betting marketplace, comprising:

a database storing accounts for a plurality of users; and

one or more servers configured to:

identify one or more events and at least two possible outcomes for each of said identified one or more events;

set initial odds for each possible outcome of said identified one or more events; present to the plurality of users information indicating said identified one or more events, the possible outcomes of said identified one or more events, and the associated odds for each possible outcome;

receive a selection of an event by a user;

receive a selection of a possible outcome of said selected event by said user; receive an indication of a desired stake in the selected possible outcome of said selected event from said user; determine a first value that indicates the value of the user's desired stake in the selected possible outcome of said selected event;

determine a second value that indicates the value of the user's initial stake in the selected possible outcome of said selected event;

determine a difference between said first and second values;

provide a first update to the user's account to reflect a current stake in the selected possible outcome of said selected event based on said difference;

determine current odds for the selected possible outcome of said selected event; identify the actual outcome of said selected event; and

provide a second update to the user's account based on said current stake, said current odds, and said actual outcome.

12. The system of claim 11 , wherein said one or more servers comprises:

a front-end server that is accessible to a user device and is configured to render information related to said event to said user device via a network;

a back-end server configured for data processing; and

a communications layer that is configured to:

receive data from said user device,

transform said data, and

transmit said transformed data to said back-end server.

13. The system of claim 12, wherein said back-end server includes multiple instances adapted for parallel processing of data received from the front-end.

14. The system of claim 13, wherein said communications layer is further configured to optimally distribute requests across said multiple instances of said back-end.

15. The system of claim 12, wherein said back-end is configured to determine if the user's desired stake in the outcome of said event is in accordance with one or more validation parameters.

16. The system of claim 12, wherein said front-end is further configured to deliver to said user device user input controls.

17. The system of claim 16, wherein said user controls include one of an entry field, slider, or knob that enable a user to input the user's desired stake in the possible outcome of said event.

18. The system of claim 11 , wherein said desired stake, initial stake, and current stake are quantities of shares in the possible outcome of said event and there is a total number of outstanding shares associated with said possible outcome in the dynamic betting marketplace.

19. The system of claim 11 , wherein said one or more servers are further configured to: identify each user having a current stake in the outcome of said event, wherein said current stake is a quantity of shares in the possible outcome of said event associated with the account of each of said identified users;

update the account of each user based on said current stake, said current odds, and said actual outcome; and

remove all shares of said outcome for said event from each user's account.

20. The system of claim 12, wherein said back-end server is further configured to maintain a queue of information indicating the user's desired stake in the possible outcome of said event.

21. The system of claim 11 , wherein said one or more servers are further configured to:

simultaneously receive an indication of a desired stake in the selected possible outcome of said selected event from a second user and a third user; and

process said received indications from said second and third users in a random order.

22. The system of claim 11 , wherein said one or more servers are further configured to:

update a quantity of the user's free cash according to: wherein FCji9it is the user's current free cash, is the user's initial free cash, and Di:g represents said difference between the value of user's desired and initial stakes in the possible outcome of the event.

23. The system of claim 18, wherein said one or more servers are further configured to:

update the quantity of the user's current shares in the outcome of said event according to:

wherein u, g>f is the user's current quantity of shares in the possible outcome, u^. 1 is the user's initial quantity of shares in the possible outcome, and kji9 represents a change in the total number of outstanding shares for the possible outcome of said event based on said first update.

24. The system of claim 18, wherein said one or more servers are further configured to:

determine the current value of a number of shares (u,) for a possible outcome of an event according to: wherein v is a market state, and β is a liquidity parameter.

25. The system of claim 18, wherein said one or more servers are further configured to:

determine a price ( ,) for a share of the possible outcome of said event according to:

wherein v indicates the number of shares in the possible outcome of said event that are owned by users and B is a liquidity parameter.

26. The system of claim 11 , wherein at least one of the user's desired stake, initial stake, or current stake is expressed as an amount of a currency unit, there is a total number of outstanding shares associated with said possible outcome, and said one or more servers are configured to:

convert at least one of the user's desired stake, initial stake, or current stake into a number of shares of the outcome of said event according to:

kitv. W, B) = B

wherein D is amount of said desired stake, B is a liquidity factor, and v is a number of shares associated with the outcome of said event.

Description:
DYNAMIC BETTING SYSTEM, METHOD AND COMPUTER PROGRAM PRODUCT

CROSS REFERENCE TO RELATED APPLICATION

[0001] This application claims the benefit of the earlier filing date of, and contains subject matter related to, that disclosed in U.S. Provisional Application Serial No. 61/379,978, filed September 3, 2010. The disclosure of the above noted application is hereby incorporated by reference in its entirety.

BACKGROUND OF THE INVENTION

1. Field of the Invention

[0002] The present invention is in the technical field of entertainment systems. More particularly, the present invention is in the technical field of systems, methods and computer program products for betting and gambling. Embodiments of the present invention are directed to a method for enabling a user to make bets on outcomes, e.g. in sports matches or races as well as other types of events such as elections, weather, news prediction, economic events, business events, political events and any other event which is acceptable for betting or gambling.

2. Description of Related Art

[0003] Betting on various events, such as elections, economic indicators and sports results, is a large and growing industry. In normal betting games, a bettor places a bet (on virtually anything, subject to legal limitations) at certain odds and waits to find out if the bet wins or loses. The odds keep changing but the player cannot withdraw his bet once it has been accepted by the system/the bookkeeper etc. Various types of betting systems are available for various types of events. The prior art discloses several methods of betting systems. Pari-mutuel betting and fixed-odds betting are the most popular systems among sports and financial bettors.

[0004] Pari-mutuel betting (described for example in U.S. Patent Application Publication No. 2007/0082730) is a type of betting system in which all bets on the outcome of a particular event are placed together in a pool, and payoff odds are calculated by sharing the pool among all winning bettors. In a pari-mutuel betting system, the final payout is not determined until the pool is closed. Moreover, this system does not allow bettors to place a bet at certain odds because the odds of each and every bet in the pool keep changing as new bets are added to the pool by other bettors. Therefore, a pari-mutuel betting system does not allow for counter bets, i.e. bets which offset a previous bet such that the bettor who owns the previous bet and the counter-bets has a guaranteed zero or positive return.

[0005] The most common method of addressing the problems of pari-mutuel betting is to organize markets where a huge number of bettors can exchange, i.e. buy and sell, such bets. Such markets are called betting exchanges. An example betting exchange is described in detail in U.S. Patent Application Publication No. 2007/0087821. To offset a bet, a bettor can sell the bet to another bettor on the betting exchange at a certain price, which can be interpreted as the current market value of that bet, and only if the seller finds a buyer with whom he can agree on the sale price. For a betting exchange to be useful, it must have a large number of active members so that it is possible to find a buyer for ones bet in a reasonably short period of time, at least before the underlying outcome of the event on which the bet is contingent has occurred.

[0006] Fixed-odds betting (described in U.S. Patent No. 6,033,308) is a form of wagering against odds established by a bookmaker. In this system, the final payout is determined by odds at the time of placement of the wager, i.e. a bet which was placed at certain odds keeps these odds until the underlying outcome has occurred. This makes it possible to calculate and place counter bets to offset ones position from previous bets. The calculation of such counter bets is complicated, especially for the lay person.

[0007] Hence it can be said that betting systems known from the prior art do not provide a direct, simple, safe, easy-to-use way for increasing, decreasing or completely withdrawing ones bet in order to limit losses or secure profits on changing odds. Instead, these systems require, as described above, complex operations, e.g. computing counter bets (like in financial floating or fixed binary betting), or negotiating prices on a betting exchange.

[0008] Therefore, the present betting systems are not flexible enough to enable bettors to hold full control over placed bets in an efficient and simple manner, and there is a need for new and improved systems and methods which provide bettors with more control over their wagers.

SUMMARY OF THE INVENTION

[0009] Embodiments of the present invention include a system, method and computer program product for providing dynamic betting which enables bettors (also referred to as users) to make, withdraw, and increase/decrease the stake of bets. The invention utilizes stock and stock pricing mechanisms in a unique environment to create the dynamic betting system and method of the present invention. Users of the present invention (i.e., bettors) place bets (amounts of money) on certain outcomes. The system, method and computer program product of the present invention treat this placing of a bet as a purchase of a share of in that particular outcome for the particular event. Each potential outcome for a given event has an associated "outcome stock." The pool of bets for each outcome has an associated stock of which players are buying shares. The system converts each bet amount on a certain outcome into a number of shares of that outcome. This is accomplished by simply using the current price of the shares of this outcome's stock to calculate how many shares the bet amount could buy at that share price. The number of shares which results from this calculation is a real number, not necessarily an integer.

[0010] According to embodiments of the present invention, a player can place a bet (on anything, subject to legal limitations) at certain odds. The odds keep changing as other players bet, and the player can withdraw his bet at any time.

[0011] According to embodiments of the present invention, odds are expressed as probabilities. Odds and probabilities are mathematically equivalent representations of the likelihood of an event to happen.

[0012] Another aspect of embodiments of the present invention, is the use of event likelihoods, e.g. probabilities that a wagered-on outcome will actually happen, instead of traditional odds. (Odds and event probabilities are mathematically equivalent). The probability of an outcome is a number between 0% and 100%. It is determined by a one-to-one relation to the price of the underlying stock of that outcome, e.g. if the underlying stock's price of an outcome is 40 CU (cu = currency units, can represent any real or fantasy currency), then that outcome's probability is 40%.

[0013] Each outcome stock has a function, i.e. a price function, which determines the outcome stock's price as a function of the current demand and supply situation in the underlying stock market. The demand and supply situation is a result of the players' chosen outcomes and the amounts they bet on these outcomes. Each bet is transformed into demand for the underlying shares of that outcome, i.e. the demand increases. Closing a bet decreases demand, and hence price and the related probability. Increasing an existing bet increases demand, decreasing an existing bet, decreases demand.

[0014] According to embodiments of the present invention, when a player withdraws his bet, he will receive the current value of his bet back. This can be more or less than the amount of bet he put into the pot. Specifically:

• if the probability, for his tip to happen has increased since the time of his bet, this will also increase the current value of his bet,

• conversely, if the probability for his tip to happen has decreased the current value of his bet will decrease.

[0015] For each transaction, a transaction fee may be charged.

• Example: Current probability: "10% that the Celtics will win the next game." Player 1 bets $50 on the Celtics. At the end if he's right he will receive $500 back, if he's wrong he will receive zero.

On the next day, the probability has risen to 20% due to other players' bets.

Now the current value of player Ts bet has doubled from $50 to $100. Player 1 is free to leave his bet as it is and hope for a cash-out of $500 or to withdraw it right now in which case he'll receive $100 (a profit of $50). If the probability would not have increased to 20% but would have fallen to, say, 5%, than the current value of player 1's bet would have decreased from $50 to $25, and he could decide to stay or withdraw.

[0016] According to embodiments of the present invention, it is not only possible to withdraw ones bet completely, but to freely adjust the bet, e.g. withdraw part of it, or top- up the bet amount. The options on which to bet are specified by the system at the beginning, e.g. "Celtics win", "Celtics lose" and they remain constant during the term of the wager. The only parameters that change are the probabilities, which are governed by the initial probability, set by the system in the beginning before the first player places a bet, and from that point onwards the bets of all players are used to update the probabilities via specific algorithms, as described.

[0017] According to embodiments of the present invention, a method for dynamic betting includes identifying one ore more events, each of which has at least two possible outcomes, and setting initial odds for each possible outcome of the events. The method further includes presenting a plurality of users, each of which has an account, with information indicating one or more of the events, the possible outcomes of the events, and the associated odds for each possible outcome. The method also includes receiving a selection of one of the events by a user, a selection of a possible outcome of the event selected by the user, and an indication of a desired stake in the selected outcome. A first value is determined, which indicates the user's desired stake in the selected outcome, and a second value is determined, which indicates the value of the user's initial stake in the outcome of the selected event. Then, a difference between the first and second values is determined and the user's account is updated to reflect a current stake in the selected outcome based on the difference. Current odds for the selected outcome of the event are then determined. The method further includes identifying the actual outcome of the selected even and updating the user's account based on the current their current stake in the outcome, the current odds, and the actual outcome.

[0018] In one particular aspect, the desired stake, initial stake, and current stake are quantities of shares in the possible outcome of the event in a dynamic betting marketplace, where there is a total number of outstanding shares associated with the possible outcome.

[0019] In some embodiments, the method further includes identifying each user that has a current stake in the outcome of the event, updating the account of each user based on their current stake, the current odds, and the actual outcome, and removing all shares of the outcome for the event from each user's account. [0020] According to embodiments of the present invention, a system for providing a dynamic betting marketplace is provided, which includes a database storing accounts for a plurality of users and one or more servers. The server, or servers, are configured to identify one or more events, each of which have at least two possible outcomes, and set initial odds for each possible outcome of the identified events. The servers are further configured to present to the users information that indicates one or more of the events, the possible outcomes of the one or more events, and the associated odds for each possible outcome. The servers may then receive a selection of an event by a user along with a selection of a possible outcome of the selected event. The servers also configured to receive an indication of a desired stake in the selected outcome of the event from the user, which is used to determine a first value that indicates the user's desired stake in the selected possible outcome. A second value is also determined, which indicates the value of the user's initial stake in the possible outcome of the selected event. The servers are configured to determine a difference between the two values and update the user's account to reflect their current stake in the selected possible outcome based on the difference. Additionally, the one or more servers may be configured to determine current odds for the possible outcome of the selected even, identify the actual outcome, and provide a second update to the user's account based on their current stake, the current odds, and the actual outcome.

[0021] In some embodiments, the one ore more servers includes a front-end server that is accessible to a user device and is configured to render information related to the event to the user device via a network, a back-end server configured for data processing ,and a communications layer. The communications layer may be configured to receive data from the user device, transform the data, and transmit the transformed data to the back-end server.

[0022] In one particular aspect, the servers are further configured to identify each user having a current stake in the outcome of the event, wherein their current stake is a quantity of shares in the possible outcome of the event associated in their account, update the account of each user based on their current stake, the current odds, and the actual outcome, and remove all the shares of the outcome for the event from each user's account.

BRIEF DESCRIPTION OF THE DRAWINGS

[0023] FIG. 1 is an illustrative display interface in accordance with embodiments of the present invention.

[0024] FIG. 2 is an illustrative display interface in accordance with embodiments of the present invention.

[0025] FIG. 3 is an illustrative display interface in accordance with embodiments of the present invention.

[0026] FIG. 4 is an illustrative display interface in accordance with embodiments of the present invention.

[0027] FIG. 5 is an illustrative display interface in accordance with embodiments of the present invention. [0028] FIG. 6 is an illustrative display interface in accordance with embodiments of the present invention.

[0029] FIG. 7 is an illustrative display interface in accordance with embodiments of the present invention.

[0030] FIG. 8 is an illustrative display interface in accordance with embodiments of the present invention.

[0031] FIG. 9 is an illustrative display interface in accordance with embodiments of the present invention.

[0032] FIG. 10 is a process flowchart for placing a bet in accordance with an embodiment of the present invention.

[0033] FIG. 11 is a process flowchart for a payout procedure in accordance with an embodiment of the present invention.

[0034] FIG. 12 is a diagram of an exemplary architecture for a system in accordance with an embodiment of the present invention.

[0035] FIG. 13 is a functional block diagram of the architecture for a system in accordance with an embodiment of the present invention.

[0036] FIG. 14 is a functional block diagram of the architecture for a system in accordance with an embodiment of the present invention.

[0037] FIG. 15 is a functional block diagram of the architecture for a system in accordance with an embodiment of the present invention. [0038] FIG. 16 is a functional block diagram of the architecture for a system in accordance with an embodiment of the present invention.

[0039] FIG. 17 is a block diagram representing a front end system in accordance with an embodiment of the present invention.

[0040] FIG. 18 is a block diagram representing a back end system in accordance with an embodiment of the present invention.

DETAILED DESCRIPTION OF THE INVENTION

[0041] According to embodiments of the present invention, systems and methods for a dynamic betting enables bettors to easily withdraw their bet and also enables bettors to increase or decrease the stake of the bet. Modifying or withdrawing bets can be done at any time, as the liquidity for such operations is provided by the provider operating the dynamic betting place in accordance with the systems and methods of the present invention.

[0042] According to embodiments of the present invention, a novel underlying dynamic betting is used to apply traditional stock market concepts in a unique betting context.

The dynamic betting utilizes a market maker algorithm which can quote a price for a bet or wager on the outcome of a particular event at any point in time, and which can guarantee a limited adjustable maximum loss or profit for the provider of the dynamic betting market place. This allows trading to take place at any point in time, regardless of how many active bettors there are on the betting market place. Bettors are provided with a plurality of views in the dynamic betting market place. For example, a user interface allows them to place bets on one of the outcomes which are offered on the dynamic betting marketplace for a given event, as well as to increase, decrease or close off completely their bets without the need for trading with other bettors or computing and placing counter bets.

[0043] The connection between the dynamic betting and the betting user interface is provided by a set of formulas set out below called a dynamic betting valuator . The dynamic betting valuator computes the current value of a bet, the odds of an outcome before and after a bet on that outcome and the gain or loss in free cash for each operation desired by the bettor, e.g. increase, decrease, or close off completely his bet.

[0044] According to an embodiment of the invention, bettors place bets, i.e. amounts of money, on a certain outcome of an event. In the underlying dynamic betting valuator, each outcome has an associated "outcome stock" of which bettors are buying real- valued numbers of shares. The method and system convert each bet amount on a certain outcome into the number of shares of that outcome which can be bought with the user-specified bet amount given the current share price. The number of shares which results from this calculation is not necessarily an integer but any real number, which is not possible in a traditional stock trading mechanism. Like in fixed-point betting, the odds are then locked for the bet, i.e. the buy price paid for the underlying shares does not change anymore (the current price of new shares can change but the buy price is now locked).

[0045] The stock price in the present invention is limited between 0 and 1 so it can represent a probability, which is also always limited between 0 and 1. [0046] Betting odds of an outcome can always be interpreted as the probability for that outcome to occur. Hence, both betting odds as well as the bounded stock price of the present invention are equivalent representations of the probability of an outcome to occur. The stock price in the present invention can be interpreted as follows: the closer the share price is to 1 , the more likely the underlying outcome is to occur, e.g. if an underlying stock price of a certain outcome is 0.4 CU (CU = currency units, can represent any real or fantasy currency), then that outcome's probability to occur is 0.4, i.e. 40%.

[0047] Price function

[0048] For example, assume there is an event with o possible outcomes, on each of which bettors can bet. Let i be the index of the outcomes with i ε it 2, ... o) and let !>t_i = i½, ..., t¾) be the vector of the number of shares which are owned by all bettors on each outcome / ' at time t-1, i.e. before the next bet is placed by some bettor. It can be said, that the vector v describes the current state of the market on that event. Let

B be a liquidity parameter. Then it is known from prior art (Hanson, 2007) that the current price of the th stock at time t is determined by the equation

where exp(x) is the Euler number e to the power of x. Eq. 1 will be used in the following to describe the invention, but it should be noted that Eq. 1 is not the only function which fulfills the requirements of the present invention. Any function (x,) with the following mathematical characteristics can be used:

• Non-negative co-domain, i.e. the minimum value in its co-domain is 0.

• Upper bound of 1 , i.e. the maximum value in it's co-domain is I.

• Injective function, i.e. preserves a one-to-one relation between each

element of its domain and co-domain.

• Continuity, i.e. infinitely small inputs in its domain, result in small changes in the co-domain.

• Differentiable in every point of its domain (or at least the number of points where the function has no derivatives should be finite).

• Growing function for an increase of demand for shares of outcome / ' , and

declining function for a decrease of demand of shares of outcome /, as well as a declining function for an increase in demand for shares of outcomes other than outcome / ' , and a growing function for a decrease in demand for shares of outcomes other than outcome /.

[0049] Cost function

[0050] Buying a positive or negative amount of shares of type J , k, changes the total amount of shares outstanding on outcome / from v, to v, + k. The cost function is the definite integral of the price function from v, to v,- + k. Using Eq. 1 as an example of a valid price function, the cost C, for buying a positive or negative amount of shares of type i , k, , given a market state v and a liquidity parameter β is as follows:

[0051] When purchasing shares k, is positive, when selling shares it is negative. When k, is positive Eq. 2 returns a positive number as the cost C, for those k; shares. When is negative Eq. 2 returns a negative number as sales proceeds for those k, shares. When subtracting a negative number from the free cash of the bettor, his free cash will grow, i.e. the sales proceeds will increase his free cash. At any point in time the buy and sale operations in the underlying dynamic betting valuator have to satisfy the condition Vj + kj≥ 0, i.e. it is not possible to sell more shares of outcome / ' than there are shares of outcome on the total market.

[0052] Transposed cost function

When a bettor wants to place a certain bet amount D rather than purchase shares on outcome / ' then bet amount needs to be converted into a real number of shares j of that outcome in the underlying stock trading mechanism. This is accomplished by transposing Eq. 2 into:

[0053] When a bettor has already placed a bet amount on outcome / ' for which he received u, shares in the past, then in the present invention that bet amount has a current value CV, at any point in time, which is the current value of the shares u,. The bettor can take part or all of that current value out of his bet and convert it to cash. Therefore, the current value equals the sales proceeds of selling all the shares u, which a bettor owns on outcome / ' . This current value is not subject to negotiation and trading on a betting exchange but determined by Eq. 2 which can quote sales proceeds, hence the current value of any number of shares at any point in time by using:

[0054] This equation is analogous to Eq. 2 with -u, substituted in place of +/c,. As explained above, when k, is negative Eq. 2 will return negative values which are sales proceeds which increase the cash of the bettor. Since u, is always positive Eq. 4 represents a situation where k t is negative in Eq. 2, and therefore Eq. 4 always returns a negative value, which is the current value of a previously placed bet, i.e. the sales proceeds of the currently owned shares u,.

[0055] Placing a new bet or increasing the amount of an existing bet

[0056] According to embodiments of the present invention, the bettor does not have to deal with stock trading and buying or selling shares to control his or her staked bet amount S, on outcome /. Instead only simple operations such as increasing the staked bet amount (buying additional shares) or decreasing (selling some or all of one's shares) the staked bet amount are required from the bettor.

[0057] To see this we define a time index t-1 which denotes the situation before the bet and t the situation after the bet. The quantity D, for bettor g will be defined as: [0058] The quantity S/, G , is the amount which bettor g wants to have at stake in outcome / right now. His current stake has a value now, which is denoted as CV^ . The quantity D,, g is difference between what bettor g wants to have at stake now, S/, g i , and the current value of the existing stake, C¼, gii-1 . If bettor g wants to increase his stake now D,, g will be positive, if he wants to reduce his stake D,, g will be negative. When bettor g wants to completely withdraw his stake, , S;, G , , will be zero and D ii9 = -CV^M will be true, which is also the smallest permissible value for D, i9 .

[0059] The current value of U; i9it .i, i.e. the shares on outcome / which bettor g owns before the transaction, is CVi i9it .i and is given by Eq. 4 with CV iig:t -i substituted for CV ii9 When a bettor g wants to stake an amount S/, G , which is larger than the current value CVj.g.t-1 of his bet on outcome / ' , e.g. place his first bet on /, in which case it must be true that CViat-1 = 0, or increase an existing bet on / ' , with current value CV ii9it .i≥ 0, then D/ ,g will be positive. As explained above when D,; g is positive Eq. 3 will return a positive amount of shares />g . The number of shares which bettor g will own after the transaction in the underlying stock trading mechanism will then be u h9it = u,- i9 t-i + k, i9 , where W/, G>I-I is the number of shares owned by bettor g before the transaction.

[0060] The current value CV ii9ft of the shares u h9it owned by bettor g after the transaction is then the sum of the current value of new shares which will precisely equal D/ g and the current value of the shares already owned by bettor g before the transaction, CV ii9it .i, i.e. CV i>9it = D,, g + CV ii9t .i = The bettor has exactly achieved the new bet amount S^t-i which he intended to have on outcome / ' . The same result can be obtained by substituting the new number of shares owned by bettor g after the transaction, u;, g ,t, for u, in Eq. 4 because, as previously discussed, Eq. 4 returns the current value of a given amount of shares u,.

[0061] Decreasing or completely withdrawing an existing bet

[0062] When bettor g wants to decrease his bet on outcome / ' he will be able to do so given the current value CV/, g ,M of his bet on outcome . Decreasing ones bet amount S, g, is equivalent with S ig>f-i < CVj : g it -i in Eq. 5, which in turn implies that D i g < 0. By taking out D ii9 from his bet amount bettor g will increase his cash by the same amount. Using D / g in Eq. 3 instead of D will return a negative the number of shares k g , i.e. shares which will be sold. Correspondingly, u hgit = Ui >9:t -i + k i>g will be smaller than υ ίι9ιί .ι - the number of shares owned before the transaction.

[0063] The condition D />g ≥ -C½ g ,f.i means that the bettor cannot take out more from the bet than part or all of the current value of the bet and has to be met at all times. The same condition guarantees that -k li9 ≤ t½,f-f, i.e. the bettor will never be able to sell more shares than he owned before the transaction. Completely withdrawing one's bet means to take out the whole current value of the bet by choosing an S,-, g ,M = 0, which by Eq. 5 results in D,, g = -CVj >9it -i, . This in turn means that -kj, g = -u/, ft M, i.e. all shares owned by g on / ' will be sold in the underlying stock trading mechanism.

[0064] Updating individual and global values after a transaction

[0065] The free cash FC/, g ,f of bettor g after an transaction is given by Eq. 6

An increase of the stakes amount as described above and in Eq. 5 results in a positive value for D /,g which in turn reduces the free cash of the bettor. A decrease or complete withdrawal results in a negative D, :g which in turn increases the free cash of the bettor.

Similarly, the amount of shares owned after a transaction is given by

Eq. 7

[0066] When increasing ones bet amount S/, g , will be positive and hence the number of shares owned will rise, and vice versa.

[0067] The number of shares of outcome / ' present in the total market across all bettors after a transaction by bettor g is given by

Eq. 8

[0068] Payout, winnings and odds

[0069] Once the outcome of an event has materialized, the administrator of the bets selects that event and specifies one or more winning outcomes for that event. The shares associated with winning outcomes are removed from the portfolios of all bettors who own such shares and these bettors receive free cash in return, as follows: each share of the winning outcome / ' receives a final payout w h - and w, is usually 1 but the present invention can handle any real value, even negative ones which do not make sense from a business point of view. The value x, can also be set individually for each winning option, if necessary. The shares associated with loosing outcomes are also removed from the portfolios of all bettors who own such shares but these shares each receive a payout of 0.

[0070] The most common practice is that only one outcome of an event is selected as a winning outcome and its w is set to 1. This is so because the maximum price per share is 1 , which corresponds to the maximum probability of an outcome to materialize, both of which has been discussed above. With this payout rule it is possible not only to show to bettors the current value of their staked cash but also the money they will receive back on their staked cash on outcome / ' if that outcome turns out to be the winning outcome, see the example in the summary of the invention. Therefore the present invention offers the same comfort as traditional betting systems with regard to knowing how much a bettor can win on his bet.

[0071] At any time, the odds of outcome / ' in terms of a winning probability are given by Eq. 1 , i.e. the price of stock / ' , ,, with v iit substituted for ¼. As can be seen, the lower the winning probability and hence the price, the more shares any given stake Sj tg>t .i will buy. With the payout rule discussed above the more shares one owns the more one can win. Therefore, when the odds are against outcome / ' and hence the price of outcome / ' is low any given stake S, a M will buy more shares and hence secure a higher possible payout, than a stake on an outcome with unattractive odds, hence high price per share. [0072] As can now be seen, the present invention offers the advantages of fixed-odds betting, i.e. knowing the possible winnings and having fixed-odds, while it gives for the first time full control over the betting process to the bettor. Losses can be curbed by completely withdrawing a bet and profits can be secured in the same manner without the need for having to wait for the final outcome to become known. As described above, conventional systems and methods require placing complex counter bets or selling a bet on a betting exchange. Counter bets are difficult to compute, especially for the lay person, and require additional investment into counter bets. Betting exchanges are time-consuming and one is not always successful in finding a suitable buyer for ones bet.

[0073] The invention presented executes each transaction immediately using the specialized cost and price equations in an underlying dynamic betting valuator.

[0074] FIG. 1 illustrates an exemplary screen a logged on user would see which allows the user to select from various events on which the user may place a bet/wager.

[0075] FIG. 2 illustrates an exemplary screen for placing a wager on a particular event.

[0076] FIGS. 3-9 are exemplary display interface screens demonstrating an example of a user placing a bet using the system in accordance with embodiments of the present invention.

[0077] Example: Using the present invention to bet on a basketball game

[0078] As shown in FIG. 3, a bettor g utilizing a system which embodies the present invention is presented with several events on which he or she can place a bet. In this embodiment, the user is accessing the system utilizing an internet browser, such as Microsoft Internet Explorer or Mozilla Firefox, through, for example, a desktop computer, laptop computer or like device. In other embodiments of the invention, these displays could be presented in forms utilizing other browsers or interface software on other devices including smartphones, tablet computers, Apple iPad, or any number of other devices. Additionally, while in the example embodiment shown, the pages are shown as stand-alone web pages, these features could be implemented within other websites, including social networking websites such as Facebook.

[0079] In the present example, bettor g wants to place a bet on tomorrow's basketball game, the L.A. Lakers vs. Boston Celtics. Bettor g selects this event by clicking the "read more" link, which corresponds to this basketball game on the screen shown in FIG. 3, which causes his browser to load the screen shown in FIG. 4. This game is an event and the possible outcomes are "Lakers win", "Celtics win", "Draw". Bettor g decides to place a bet of 50 CU (CU=currency units, e.g. U.S. dollars) on "Lakers win". Bettor g enters this bet into the system using the corresponding controls shown in FIG. 4. As seen in FIG. 5, after entering the information for the desired bet, g receives a confirmation of his bet and the current value of his bet. At first, the current value will exactly equal his desired stake of 50 CU until the odds change, which will cause the current value of g's stake to be adjusted by the system.

[0080] As can be seen by comparing the "Current Probability" for each outcome in FIGS. 4 and 5, the bet placed by g has changed the odds of all outcomes in the event. Outcome "Lakers win" has increased from 45% to 47%. This demonstrated how the present invention adjusts the odds after each new bet. Since all odds have to sum to 100% probability, the method adjusted the other outcomes accordingly to 34% and 19% so that the sum of all outcomes of that event is 100%.

[0081] FIG. 6 shows an example screen which might be seen when bettor g returns to the site to check the value of his stake prior to the event taking place. In the example shown, he finds that it has increased from 50 CU to 55 CU. This is because other bettors also believe in outcome "Lakers win" and have placed new bets on that outcome. These bets caused the odds for "Lakers win" to rise from 47% to 50%. The method not only adjusts the odds after each bet but also the current value of all existing bets. And therefore the stake of g has increased in value from 50 CU to 55 CU since the odds have also moved in favor of outcome "Lakers win".

[0082] As shown in FIG. 7, bettor g decides to decrease his stake and secure some of the winnings which he made. Utilizing the controls on the page, he inputs his new stake at 30 CU and submits the revised bet.

[0083] As shown in FIG. 8, the system confirms that he has decreased his stake from 55 CU to 30 CU and that he receives the difference of 25 CU on his free cash account. In conventional betting methodologies, the bettor would have had to wait until the actual result of the event is known before being able to secure all or, as in this example, part of his winnings. Similarly, if g would have found the current value of his stake having decreased, the current state of the art would not have allowed him to limit his losses by taking out the remaining current value of the stake.

[0084] As described above, the method again adjusts the odds for all outcomes since now the total amount placed on outcome "Lakers win" has decreased from 55 CU to 30 CU, which also lets the odds for that outcome decrease while the odds of the other outcomes have increased.

[0085] The current stake of bettor g of 30 CU on outcome "Lakers win" has been placed at odds of 50%. This means that if the outcome actually happens, i.e. the L.A. Lakers win the game the stake of 30 CU will be worth 60 CU.

[0086] As shown in FIG. 9, bettor g wants to hedge his position and places a bet of 10 CU on "Draw" at odds 19%. If that outcome actually happens, the 10 CU will be worth approximately 5 times the stake, i.e. approximately 50 CU. This bet has of course impacted the odds of all outcomes in this event, hence the current value of all bets previous to that last bet of 10 CU. As can be seen, the bet of g on "Lakers win" has also been impacted and decreased because the method adjusted the odds for the additional trust placed on the outcome of "Draw" by g himself.

[0087] To summarize, bettor g now holds bets with current values 28 CU on "Lakers win" with a chance for winning 60 CU if that outcome actually happens, and a bet of 10 CU on "Draw" with a chance of winning approximately 50 CU if that outcome actually happens. If the outcome "Celtics win" happens, bettor g will lose all of his staked money.

[0088] The bettor can observe how the odds keep changing until the closure of the bet and at any point in time change or completely withdraw his bet at their then current values or put additional money on any of the outcomes at the then current odds of that outcome. The system, method and computer program product of the present invention supports all of these activities and computes the correct odds, winning chances and money transfers at all times.

[0089] FIG. 10 is a flowchart illustrating a method for placing a bet in accordance with an embodiment of the present invention. In an embodiment, method 1000 includes the bettor selecting the event on which he wishes to place a wager (step 1002). Upon selecting the event on which he wishes to place a wager, the bettor is presented with a user interface which allows the bettor to select the particular outcome on which to place his wager and specify the desired stake S (step 1004). The system then uses the information regarding the bettor's selected outcome and specified stake S to compute amount D. The system then loads the amount of free cash (FC) in the bettor's account and the current value of the stake on the selected outcome (CV) into memory for further operations (step 1008). The system then checks if the value of the bet amount D is greater than the amount of free cash FC in the bettor's account (step 1010). If the bet amount D is greater than free cash FC, then the value of D is set to the amount of FC available in the bettor's account (step 1012). If the bet amount D is not greater than free cash FC, then the value of bet amount D is compared to the negative current value of the selected outcome (-CV) (step 1014). If the value of bet amount D is less than or equal to the negative current value of the selected outcome (-CV), then the value of D is set to the negative current value of the selected outcome (-CV) (step 1016). The system then checks if the value of the bet amount D is equal to the amount of the negative current value of the selected outcome (-CV) (step 1018). If the value of bet amount D is equal to the negative current value of the selected outcome (-CV), then the system sets the number of shares k equal to -u, which is the number of shares owned by the bettor on that outcome stock (step 1022). If the value of bet amount D is not equal to the negative current value of the selected outcome {-CV), then the system sets the number of shares k utilizing equation 3 as described above (step 1024). Next, the system updates the bettor's account to reflect the new values for free cash FC and the number of shares purchased in the particular outcome stock (step 1026). The system then updates the total number of shares in the particular outcome stock for all users and the odds of all outcomes in the selected event (step 1028).

[0090] FIG. 11 is a flowchart illustrating the payout procedure in accordance with an embodiment of the present invention. In an embodiment of the present invention, method 1100 begins with a system administrator selecting an event on which the outcome has been determined for payout (step 1 102). Next, the system administrator specifies final payout value per share for each outcome / (step 1104). Then, a list with all bettors with open bets on the selected event is compiled (step 1 106). For each bettor in the compiled list, the corresponding amount free cash in each account is updated according to each bettor's shares and the final payout value per share (step 1108). Finally, all shares of the selected event from each bettor's account are removed (step 1110).

[0091] FIG. 12 a diagram of an exemplary architecture for a system in accordance with an embodiment of the present invention. Laptop 1202 and workstation 1204 are personal computers (PC) connected to network 1210 through networks 1206 and 1208, respectively. Networks 1206 and 1208 may be wired or wireless networks, private or public networks, local or wide area networks, virtual networks, etc., or any combination thereof. Network 1210 is, generally, a wide area public network, such as, for example, the Internet. Typically, laptop 1202 and workstation 1204 access the Internet through respective Internet Service Providers (ISPs) (not shown). Other embodiments of network 1210 include wired or wireless networks, private or public networks, local or wide area networks, virtual networks, etc.

[0092] Front end server 1218 is connected to network 1210 directly (not shown) or through firewall 1214, and to database server 1220 through network 1222. Front end server 1218 and database server 1220 may be custom-built servers, industry standard servers, such as, for example, HP ProLiant servers, etc. Front end server 1218 executes software implementing various features of the present invention, while database server 1220 can store and manage information relating to the display of the application as well as information relating to users and the dynamic betting valuator. For example, Microsoft's NET, Windows Server and SQL Server software packages may be deployed on these machines. In an alternative embodiment, front end server 1218 also functions as database server 1220, i.e., a single server may be employed.

[0093] Embodiments of networks 1212, 1216 and 1222 include wired or wireless networks, local or wide area networks, virtual networks, etc., or any combination thereof. Network 1212 is a public network, connecting firewall 1214 to network 1210, while networks 1216 and 1222 are private networks. While database server 1220 is depicted as being connected to front end server 1218 via network 1222, networks 1216 and 1222 may also be a single network. Accordingly, one embodiment of the present invention includes a single server connected directly to the Internet. [0094] The computer program and software modules of the system, method, and computer program product of the present invention can be implemented using any operating system, and associated hardware including, but not limited to, Unix, Linux, VMS, IBM, Microsoft Windows NT, 95,98, 2000, ME, and XP, Mac OS, Palm OS, Android, Microsoft Windows CE, Microsoft Windows Mobile, Symbian OS and the like.

[0095] The systems, processes, and components set forth in the present description may be implemented using one or more general purpose computers, microprocessors, or the like programmed according to the teachings of the present specification, as will be appreciated by those skilled in the relevant art(s). Appropriate software coding can readily be prepared by skilled programmers based on the teachings of the present disclosure, as will be apparent to those skilled in the relevant art(s). The present invention thus also includes a computer-based product which may be hosted on a storage medium and include instructions that can be used to program a computer to perform a process in accordance with the present invention. The storage medium can include, but is not limited to, any type of disk including a floppy disk, optical disk, CDROM, magneto-optical disk, ROMs, RAMS, EPROMs, EEPROMs, flash memory, magnetic or optical cards, or any type of media suitable for storing electronic instructions, either locally or remotely.

[0096] According to embodiments of the present invention and as shown in FIGS. 13- 15, the platform is advantageously implemented as a distributed web application, with functionality and processing load distributing between one or more application tiers. For example, for reasons of maintenance and scalability the platform is divided into two parts (i) a system for rendering the output to the users (hereafter Frontend 1304), and (ii) a system for processing of data (hereafter Backend 1308). Both parts communicate via a communication layer 1306 which manages the traffic and optimally distributes all requests. All data is being stored in a database 1310. A plurality of client devices 1302 (e.g., personal computers, smartphones, etc.) can access the system simultaneously.

[0097] Common variations include a system with multiple instances of the backend 1404 which allows for parallel processing of incoming requests from a large amount of users. The management of multiple instances of backend 1404 are managed using a load balancer implemented in the communication layer 1402. Each backend instance 1404 may connect to one or more databases. All bets on any outcome of one event can only be processed by one backend 1404 and one database 1502 only. The bets of one event cannot be distributed across different backends or different databases.

[0098] For maximum performance a common architecture is to have a group of events, with their respective outcomes, on one database 1504 and having all bets related to outcomes from this group of events directed by the communication layer to the one backend 1404 which will connect to the database 1502 which stores them.

[0099] FIG. 16 is a flow diagram which shows the functionality and flow of information between the various components of the system according to an embodiment of the invention. The various system components, i.e. frontend 1304, backend 1308, communication layer 1306, perform specific functions. The frontend 1304 is rendering a presentation of the event information, bet information and other relevant information to the client device 1302 of a user. It also delivers the visual style and layout for this information. Moreover, it delivers the user input controls, e.g. fields to enter a stake, as well as information output areas, e.g. numbers about current value, stake, odds etc. The frontend also performs validation of user inputs to prevent wrong or malicious results.

[0100] The communication layer 1306 receives user data which the user entered into the user input controls of the frontend. It transforms this data for transmission to the other parts of the system, i.e. the backend and the database 1310. It can also perform the required management functions for distributing requests optimally across various instances of the backend 1308. When the communication layer 1306 receives data from the backend it prepares it for transmission to the frontend 1304 where it is further processed for display in the presentation layout.

[0101] The backend 1308 consists of various components, i.e. a queue of bets for each event, a validator with validator logic, and a bet valuator. These components work together as well as connect with the database to process incoming bets. Moreover, the backend 1308 also handles other services, e.g. requests for displaying information about current odds, authentication services etc. Components data flows handling other services are marked with dashed lines.

[0102] The core function of the backend 1308 is the processing of bets whose components and data flows are marked with solid lines. Each incoming bet is put into the queue of the associated event. Each queue contains bets from one event only and they are sorted by the first in first out principle. Simultaneous bets are processed by a random order. The queue guarantees that one and one bet only is processed on each event at a time. [0103] A bet which is next in the queue is send to the validator which checks and adjusts the parameters of the bet such that the conditions outlined above in the description of the method are always met. If this fails, the validator returns a corresponding message to the database which is then send to the user as a result of his bet. When the validation succeeds, the adjusted bet parameters are sent to the bet valuator, which computes the resulting values for the variables outlined above in the description of the method. The result of these computations are sent to the database 1310 where they are stored and to the user via the communication layer 1306 and the frontend 1304.

[0104] When a bet has been processed successfully and all related information has been updated in the database, a signal is sent to the queue to release the next bet into the validator.

[0105] FIG. 17 shows an example implementation of a frontend according to an embodiment of a system according to the present invention. The Frontend 1304 consists of a complete website with its re-usable components, e.g. buttons, list controls etc, having been implemented as modules using UserControls. The users' betting is done via dynamic asynchronous website elements, e.g. AJAX, which communicate with the transaction logic in the Backend via a web service, e.g. SOAP protocol. The Frontend consists of:

• TradeService 1702: a web service, which processes AJAX calls from the clients and sends replies. ASPX Frontend 1704: Contains the web pages, their themes, CSS styles and designs, as well as JavaScript, Flash and other dynamic elements,

SmallBusinessObjects 1706: module which contains a shorter list of objects often used in the application. This reduces the memory footprint of the application, ControlTreeBuilder 1708: module, which generates the ControlTree for each page type. This increases the generation of pages by the system. The

ControlTree of each page type is being caches which further increases performance,

ControlRepo 1710: a module which stores all UserControls of all pages. For each page which requests UserControls the right controls are being supplied from this module with the right parameters for the requesting page. Performance and maintainability of the system are increased.

EpmWCFService 1712: service for communication with the Frontend,

Utils 1714 contains:

o LinkBuilder: module, which converts all links of the web pages of the

system into Search Engine friendly links in a reversible way. Moreover, HTML link IDs are being encoded in a reversible way and purged of special characters.

o DataAccess: module, which provides uniform access to the database for the Frontend. It also implements a caching strategy to significantly reduce work load for the Backend.

o UserAuthentication: module, which provides user authentication. [0106] As shown in Fig. 18, the Backend 1308 can consist of (i) a web service for communication with the Frontend as well as two call libraries, i.e. (ii) the EpmLogic module for the computation of the transaction logic, e.g. price function, inverse cost function, as well as (iii) the DBAccess module, which provides uniform access to the database.

• TradeService 1802: a web service, which processes AJAX calls from the

clients and sends replies.

• EpmWCFService 1804: service for communication with the Frontend,

• EPMLogic 1806: module which contains the business logic of the backend, hence the logic of the whole application,

• MarketModel 1808: for the computation of the transaction logic, e.g. price

function, inverse cost function,

• Object Cache Observer 1810: module, which implements the Observer

Pattern, to detect changes in objects, e.g. price change. Controls Backend cache requests and increases performance,

• BusinessObjects 1812: module, containing a list of all objects used in the

application, excluding SmallBusinessObjects,

• DBAccess 1816: module, which provides uniform access to the database for the Backend.

[0107] The foregoing has described the principles, embodiments, and modes of operation of the present invention. However, the invention should not be construed as being limited to the particular embodiments described above, as they should be regarded as being illustrative and not as restrictive. It should be appreciated that variations may be made in those embodiments by those skilled in the art without departing from the scope of the present invention.

[0108] While a preferred embodiment of the present invention has been described above, it should be understood that it has been presented by way of example only, and not limitation. Thus, the breadth and scope of the present invention should not be limited by the above described exemplary embodiment.

[0109] For example, the user interface can have many different embodiments, e.g. using various sliders and knobs to allow bettors to input their stake. Moreover, instead of inserting a new stake S, a . a bettor may change the current value, CV ^ .i , of a stake on an outcome. In this case Eq. 5 must be replaced with:

with being the desired current value the bettor would like to have after the transaction. It is evident that cl -i is analogous to and obeys the same laws, definition, and restrictions as S/, ft M -

[0110] While various embodiments have been described above, it should be understood that they have been presented by way of example only, and not limitation. Thus, the breadth and scope of the present disclosure should not be limited by any of the above described exemplary embodiments. Moreover, any combination of the above-described elements in all possible variations thereof is encompassed by the disclosure unless otherwise indicated herein or otherwise clearly contradicted by context, and many alternatives, modifications and variations will be apparent to those skilled in the art.. Various changes may be made without departing from the true spirit and full scope of the invention as set forth herein.

[0111] Additionally, while the processes described above and illustrated in the drawings are shown as a sequence of steps, this was done solely for the sake of illustration. Accordingly, it is contemplated that some steps may be added, some steps may be omitted, the order of the steps may be re-arranged, and some steps may be performed in parallel.