@Override
			public void run() {
				if(!isPreviousCommandStillRunning){
					isPreviousCommandStillRunning = true;

					if(shouldContinueSampling()){


						int currentSample = numSamples;
						numSamples++;
						try{
							if(shouldPollFPS){
								String fpsStr = pollFPS();
								printToScreen(fpsStr);
							}

							if(shouldPollUtil){
								String utilStr = pollUtil();
								printToScreen(utilStr);
							}

							if(shouldPollFreq){
								String freqString = pollFreq();
								printToScreen(freqString);
							}

							if(shouldPollPower){
								String powerString = pollPower();
								printToScreen(powerString);
								String total = String.format(TEXT_TOTAL_FORMAT, numSamples, totalA15Power, totalA7Power, totalGPUPower, totalMemPower);
								printToScreen(total);
							}

							printToScreen("");
						} catch(Exception e){
							numSamples = currentSample;
						}

					} else {
						endMessages();
						ExternalPowerRetrieval.stopSystemPowerRetrieval();
						System.exit(0);
					}
					isPreviousCommandStillRunning = false;
				}
			}