void patcher_PatcherStateChanged(object sender, PatcherStateChangedEventArgs e)
        {
            switch (e.PreviosState)
            {
                case PatcherState.IDLE:
                    tssState.Text = "IDLE";
                    break;
                case PatcherState.SCANNING:
                    tssState.Text = "Scanning";
                    break;
                case PatcherState.REMOTE:
                    tssState.Text = "Getting Patch List";
                    break;
                case PatcherState.PATCHING:
                    tssState.Text = "Patching";
                    break;
                case PatcherState.FINISHED:
                    tssState.Text = "Finished";
                    
                    if(patcher.NeedsUpdate)
                    {
                        patcher.UpdatePatcher();
                    }

                    break;
                default:
                    tssState.Text = "Error";
                    break;
            }
        }
 /// <summary>
 /// Invoke the PatcherStateChangedEvent; called whenenver state changes
 /// </summary>
 /// <param name="e"></param>
 protected virtual void OnPatcherStateChanged(PatcherStateChangedEventArgs e)
 {
     if (PatcherStateChanged != null)
     {
         PatcherStateChanged(this, e);
     }
 }