   nk->clear();
 }
 
+void welcomeMessage(){
+  terminal.print("Welcome to Touchscreen GUI demo",YELLOW);
+  terminal.print("This demo shows up some features",GREEN);
+  terminal.print("of the library. Enjoy!");  
+}
+
 //==================================
 // SETUP
 //==================================
-void setup() {
-  Serial.begin(115200);
+void guiSetup(){
   canvas.init();
 
   // ===== MAIN SCREEN =====

  title.setSize(240,40);
  title.setColors(screen_main.bgColor,GRAY2,screen_main.bgColor);
  title.borderWidth = 0;
  title.setText("GUI DEMO");
  screen_main.add(&title,0,120);

  // ===== SCREEN TWO =====
  btnPlus.setText("+");

#include <Button.h>
#include <Dial.h>
#include <Numkey.h>
#include <IconButton.h>
#include <icons.h>

// Use either of these three and
// its corresponding include above
//Canvas_SEEEDTOUCH canvas = Canvas_SEEEDTOUCH(TFT_PORTRAIT,BLACK);
//Canvas_FT6206 canvas = Canvas_FT6206(TFT_PORTRAIT,BLACK);
Canvas_STMPE610 canvas = Canvas_STMPE610(TFT_PORTRAIT,BLACK);

Display header = Display(240,40,BLUE,WHITE,WHITE,20);
Display title = Display(20);
Terminal terminal = Terminal(240,50,TERMINAL_SCROLL_UP);
Numkey numkey = Numkey();
Button btnMain = Button();
Button btnDial = Button();
Button btnButtons = Button();

Screen screen_main = Screen(&canvas,0,40,240,190);
Screen screen_dial = Screen(&canvas,0,40,240,190);
Screen screen_buttons = Screen(&canvas,0,40,240,190);

Dial dial = Dial();
Button btnPlus = Button(20,GRAY1,WHITE,ILI9341_LIGHTGREY);  //Initialization version for round buttons
Button btnMinus = Button(20,GRAY1,WHITE,ILI9341_LIGHTGREY); //Initialization version for round buttons

IconButton btnBulb = IconButton(50,50,lightbulb_off,lightbulb_on);
IconButton btnSlider = IconButton(60,30,slider_off,slider_on);

const char increment = 1;

//==================================
// EVENT HANDLING ROUTINES
//==================================

void btnIconEventHandler(Button* btn){
  if(btn == &btnBulb){
    terminal.print((btn->touched)?"Bulb pressed":"Bulb unpressed",YELLOW);
  }
  if(btn == &btnSlider){
    terminal.print((btn->touched)?"Slider On":"Slider Off",GREEN);
  }
  btn->update();
}

void btnMainEventHandler(Button* btn){
  header.setText("Main");
  canvas.setScreen(&screen_main);
  terminal.clear();
  welcomeMessage();
}

void btnDialEventHandler(Button* btn){
  // Show the numkey to enter a password
  // The numkey event handler will verify the password
  // and change the screen if the password is correct
  //canvas.add(&numkey,60,50);
  header.setText("Dial");
  canvas.setScreen(&screen_dial);
  terminal.clear();
  terminal.print("Dial reprents a value in a range");
  terminal.print("Press the + and - buttons");
  terminal.print("To change it's value");
}

void btnButtonsEventHandler(Button* btn){
  header.setText("Buttons");
  canvas.setScreen(&screen_buttons);
  terminal.clear();
  terminal.print("Icon buttons use images to");
  terminal.print("represent the button state");
  terminal.print("Press a button to see it's state");
}

void btnPlusEventHandler(Button* btn){
