static void Main(string[] args)
        {
            string appName = "System Monitor";

            //Data class to get system info
            Model model = new Model();

            //Handles LCD drawing
            View view = new View(model, appName);
            view.Type = 1; //Set default view to first button
            //Releases the graphics object on close
            AppDomain.CurrentDomain.ProcessExit += (sender, e) => OnProcessExit(sender, e, view);

            //Timer to poll system data every second
            //If decreasing this time keep in mind its effect on system resources
            TimerCallback mTcb = new TimerCallback(model.queueData);
            Timer modelTimer = new Timer(mTcb, null, 0, 1000);

            ////New timer thread to poll whether an LCD button has been clicked
            ButtonHandler btnhd = new ButtonHandler(view);
            TimerCallback tcb = new TimerCallback(btnhd.buttonListener);
            Timer btnTimer = new Timer(tcb, null, 0, 100);

            //Draw the screen once a second
            while (true)
            {
                view.drawScreen();
                Thread.Sleep(1000);
            }
        }
 public void Subscribe(ButtonHandler btnHand)
 {
     btnHand.Click += new ClickHandler(buttonClicked);
 }