       }
     }
   }
-  else return NULL;
+  else return NULL;//Src has no data waiting to read? Return NULL!
 }
 
 boolean string_pattern_checker(char* string, char* pattern){

    Serial.println(gpsSerial.read());
    Serial.println("Waiting for buffer to be filled");*/

  gpsbuffer = dynamic_array_serial(gpsSerial, MAX_BUFFER_SIZE , '$', '*');
  //Serial.println("Succeed in loading buffer with data");
  //Serial.println(array_length);
  for (int i; i < array_length - 1; i++) {
    Serial.print(gpsbuffer[i]);
  }
  Serial.println();

  //if(gpstime== NULL) Serial.println("NULL"); 
  //Serial.println();
  array_length = 1;
  free(gpsbuffer);//Free memory that given to temp containter
  delay(1000);//Waiting for bytes to fill IO buffer
}
char* dynamic_array_serial(SoftwareSerial src, int max_length, char start_char, char terminator) {
