public override void Init()
    {
        try
        {
            if (containingAtom?.type != "Person")
            {
                SuperController.LogError($"Please apply the ImprovedPoV plugin to the 'Person' atom you wish to possess. Currently applied on '{containingAtom.type}'.");
                DestroyImmediate(this);
                return;
            }

            _person     = containingAtom;
            _mainCamera = CameraTarget.centerTarget?.targetCamera;
            _possessor  = SuperController
                          .FindObjectsOfType(typeof(Possessor))
                          .Where(p => p.name == "CenterEye")
                          .Select(p => p as Possessor)
                          .FirstOrDefault();
            _headControl = (FreeControllerV3)_person.GetStorableByID("headControl");
            _selector    = _person.GetComponentInChildren <DAZCharacterSelector>();

            InitControls();
            Camera.onPreRender  += OnPreRender;
            Camera.onPostRender += OnPostRender;
        }
        catch (Exception e)
        {
            SuperController.LogError("Failed to initialize Improved PoV: " + e);
            DestroyImmediate(this);
        }
    }