private boolean tradeMoneyIntern(Money wantedType)
	{
		if (wantedType == Money.FIVE_HUNDRED)
		{
			return false;
		}

		for (int i = 0; i < 7; i++)
		{
			if (Money.values()[i] == wantedType)
			{
				final Money from = Money.values()[i + 1];
				final Money to = Money.values()[i];

				if (this.ownedMoney.get(from) == 0)
				{
					if (!this.tradeMoneyIntern(from))
					{
						return false;
					}
				}

				if (from == Money.FIFTY)
				{
					this.removeMoney(Money.FIFTY, 1);
					this.addMoney(Money.TWENTY, 2, Money.TEN, 1);
				}
				else
				{
					final int rate = from.amount / to.amount;
					this.removeMoney(from, 1);
					this.addMoney(to, rate);
				}
			}
		}

		return true;
	}