 int averageDataSamples(int dataSamples[], int numberOfSamples);
 
 LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
+PIDController PIDController;
+ESC esc(1500, 2000, 3);
 GPS gps;
 Gyroscope gyroscope;
 Moisture moistureSensor;
 RudderServo rudderServo;
 Temperature temperatureSensor;
 
-int heading[15];
-NMEAData gpsData;
+double heading;
+NMEAData currentGpsData;
+NMEAData nextGpsData;
 String moisture = "Unknown";
 short temperature = 0;
 int angle = 0;

  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("GYR:");
  lcd.print(averageDataSamples(heading, 15));
  lcd.print(" HUM:");
  lcd.print(moisture);
  lcd.setCursor(0, 1);
  lcd.print("ANG:");
  lcd.print(angle);
  lcd.print(" TMP: ");
  lcd.print(temperature);
}

int averageDataSamples(int dataSamples[], int numberOfSamples){

// Revision: v0.0.1
// Licence: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/

#include "PIDController.h"
#include "ESC.h"
#include "GPS.h"
#include "Gyroscope.h"
#include "Moisture.h"
