public override void OnStart(StartState state)
        {
            if (Global.Debug2) Utils.Log("state {0}", state.ToString());
            base.OnStart(state);

            // side step serialization issues and use the saved config
            _startState = state;
            if (state == StartState.Editor)
            {
                if (originalConfig == null)
                {
                    if (Global.Debug1) Utils.Log("originalConfig is null");
                }
                else loadConfig(originalConfig);
            }

            if (label != string.Empty) Events["editTextureEvent"].guiName = label;

            _ok = false;
            try
            {
                if (Global.Debug1) Utils.Log("part {0}", this.part.name);

                fillTransformNamesList();
                fillTransformsList();

                if (_transforms == null || _transforms[0] == null)
                {
                    Utils.LogError("No useable transforms, disabling plugin");
                    return;
                }

                findTextures();

                if (_imageModifiers == null) _imageModifiers = new ImageModifiers();
                if (_boundingBox == null) _boundingBox = new BoundingBox();
                if (_baseTexture == null) _baseTexture = new IM.AutoBaseTexture();

                _baseTexture.set(kspTextureInfo);

                if (!_baseTexture.valid)
                {
                    Utils.LogError("invalid base texture trying auto");
                    _baseTexture = new IM.AutoBaseTexture();
                    _baseTexture.set(kspTextureInfo);
                }

                if (_baseTexture.valid)
                {
                    if (_imageModifiers.modifiers.Count > 0) writeTexture();
                    _ok = true;
                }
            }
            catch
            {
                Utils.LogError("Something went wrong in OnStart disabling plugin");
            }
        }