public IActorRef Unwatch(IActorRef subject)
{
var a = (IInternalActorRef)subject;
if (!a.Equals(Self) && WatchingContains(a))
{
a.SendSystemMessage(new Unwatch(a, _self));
MaintainAddressTerminatedSubscription(() =>
{
_state = _state.RemoveWatching(a);
}, a);
}
_state = _state.RemoveTerminated(a);
return a;
}