TickerModel(String tickerSymbol) {
		this.symbol = tickerSymbol;
		int retryCounter = 0;
		int maxRetry = 3;

		if (settingsProperties.isSourceGoogle()) {

			do {
				try {
					this.rawData = GoogleTickerData.getGoogleJSONfromWeb(tickerSymbol);
					// FIXME Validate ticker call
					break;
				} catch (IOException e) {
					//e.printStackTrace();
					System.err.println("Connection Failure - Retry: " + retryCounter);
					retryCounter++;
					try {
						Thread.sleep(2000); // Wait 2 seconds
						// TODO is this okay when we go multi-thread?
					} catch (InterruptedException e1) {
						e1.printStackTrace();
						System.err.println("OH SHIT!!!");
						System.err.println("This is a problem related to the thread sleep, I think?");
					}
				}
			} while (retryCounter <= maxRetry);

			if (retryCounter <= maxRetry) {
				GoogleTickerData tempObj = GoogleTickerData.mapJsonDataToObject(rawData);
				this.percentChange = tempObj.getPercentChange();
				this.price = tempObj.getPrice();
				this.priceChange = tempObj.getPriceChange();
			} else { // If quote source is not set in settingsProperties
				this.percentChange = "err";
				this.price = "err";
				this.priceChange = "err";
			}
		}
	}