public void buyShares(Person buyer, Bundle available){
		double worth = buyer.preferences.get(Preference.timeScale) * profitability / 100;
		while (available.getValue() > cheapestStock && cheapestSeller.person != buyer && cheapestStock < worth && cheapestStock > 0){
			int shares = (int) Math.min(cheapestSeller.ownership, available.getValue() / cheapestStock);
			double maximumPrice = cheapestStock * shares;
			try {
				transferOfOwnership(cheapestSeller.person, buyer, shares);
				Bundle barter = available.worthAtLeast(maximumPrice);
				cheapestSeller.person.income.insert(barter);//Give barter to seller.
			} catch (BadSellerException e) {
				System.err.println("Corp: sale");
				e.printStackTrace();
			}
			updateCheapest();
		}
	}