     client.println(); //end of get request
 
       // Wait for http reponse and remove header
-      Serial.println("waiting for data");
+      Serial.println(F("waiting for data"));
   while(!client.available()) {
     delay(1); //wait for data
   }
-  Serial.println("done waiting for data");
+  Serial.println(F("done waiting for data"));
   if (client.available()) { //connected or data available
 
   // New waiting thing
-  Serial.println("calling checkBytes");
+  Serial.println(F("calling checkBytes"));
   checkBytes(crnl, byteStream);
 /*
     char a = client.read();


char byteStream() {
  //Serial.println("byteStream called");
  delayMicroseconds(500);
  char a = client.read();
  Serial.print(a);
  return a;

}

char crnl[] = {'\r', '\n', '\r', '\n'};
// Counts the amount of mathching bytes found in the stream.
// It can not be local to checkBytes
int matchingBytes = 0;

bool checkBytes(char* bytes, char (*stream)()) {
  int byteCount = 0;
  while(matchingBytes < 4) {
    matchingBytes = bytes[matchingBytes] == stream() ? matchingBytes + 1 : 0;
    byteCount++;
    if (byteCount >= 2048) {
      return false;
    }
    delay(1);
  }
  return (matchingBytes == 4); // a bit pedantic
}


int twoBytes() {
  int tempVal = 0;
  byte one = client.read();
  byte two = client.read();
  tempVal = one << 8;
  tempVal |= two;
