public synchronized boolean buy(Company company, int numberOfStocks, Person person) { //person is required to know who is doing the buying
		int companyPlace = findCo(company);
		if(companyPlace != -2 && companySellingShares.get(companyPlace).size() > numberOfStocks) {	
			for(int i = 0; i < numberOfStocks; i++) {
				try {					
					if(companySellingShares.get(companyPlace).get(0).getOwner() != null) {
						System.out.println();
						companySellingShares.get(companyPlace).get(0).getOwner().removeFromList(companySellingShares.get(companyPlace).get(0));
						companySellingShares.get(companyPlace).get(0).getOwner().addToCash(companySellingShares.get(companyPlace).get(0).getValue());
						companySellingShares.get(companyPlace).get(0).getOwner().update();
					}
				}
				catch(Exception e) { }
				companySellingShares.get(companyPlace).get(0).setForSale(false);
				companySellingShares.get(companyPlace).get(0).setOwner(person);
				Person.addToList(companySellingShares.get(companyPlace).get(0), person);
				Share dummy = companySellingShares.get(companyPlace).get(0);
				companySellingShares.get(companyPlace).remove(0);
				if(companyPurchaseShares.get(companyPlace) > 0)
					companyPurchaseShares.set(companyPlace, 0);
				marketGui.updateForSale(company); 
				MainMenu.upDateMoney();
			}
			return true;
		}
		else {
			if(companyPlace!= -2) {
				companyPurchaseShares.set(companyPlace, companyPurchaseShares.get(companyPlace) + numberOfStocks);
			}
		}
		return false;
	}