IMU 6DOF + GPS TTL communucation problems

ok i tried it and i still basically have the same problem. i can get data from the gps, but it's not gps strings like it should be. just single random ascii characters or bytes. i get nothing from the IMU (because it's waiting on me but i can't see it's menu.) here's the code:

#include <NewSoftSerial.h>

NewSoftSerial gps(3, 2);
NewSoftSerial imu(7, 5);

void setup()
{
  imu.begin(9600);
  gps.begin(9600);
  Serial.begin(9600);
}

void loop()
{
  // Every 10 seconds switch from 
  // one serial GPS device to the other
  if ((millis() / 10000) % 2 == 0)
  {
    if (gps.available())
    {
      Serial.print("GPS: ");
      Serial.print(gps.read(), BYTE);
    }
  }
  
  else
  {
    if (imu.available())
    {
      Serial.print("IMU: ");
      Serial.print(imu.read(), BYTE);
    }
  }
}