           pixyIsReporting = false;
         }
       } else if (argv[0] == PIXY_SET_SERVOS) {
-        if (!pixyIsInitialized) {
+        if (pixyPtr == NULL) {
           return;
         }
         int s0 = argv[1] + (argv[2] << 7);
         int s1 = argv[3] + (argv[4] << 7);
-        pixy.setServos(s0, s1);
+        pixyPtr->setServos(s0, s1);
       } else if (argv[0] == PIXY_SET_BRIGHTNESS) {
-        if (!pixyIsInitialized) {
+        if (pixyPtr == NULL) {
           return;
         }
         int brightness = argv[1] + (argv[2] << 7);
-        pixy.setBrightness(brightness);
+        pixyPtr->setBrightness(brightness);
       } else if (argv[0] == PIXY_SET_LED) {
-        if (!pixyIsInitialized) {
+        if (pixyPtr == NULL) {
           return;
         }
         int r = argv[1] + (argv[2] << 7);
         int g = argv[3] + (argv[4] << 7);
         int b = argv[5] + (argv[6] << 7);
-        pixy.setLED(r, g, b);
+        pixyPtr->setLED(r, g, b);
       }
       break;
     case TONE_DATA:

}

/* Pixy Support */
Pixy pixy;
boolean pixyIsInitialized = false;  // Flag to store if pixy.init() has been called.
boolean pixyIsReporting = false;  // Determines if Pixy data will be sent.
byte pixyMaxBlocks = 5;  // Sets the maximum number of Pixy blocks to report.


      break;
    case PIXY_CONFIG:
      if (argv[0] == PIXY_INIT) {
        pixyPtr = new Pixy();
        pixyPtr->init();
        // mark pins as Pixy so they are ignore in non Pixy data requests
        setPinModeCallback(PIN_PIXY_MOSI, PIXY);
        setPinModeCallback(PIN_PIXY_MISO, PIXY);
