I don't get this either. Why would you need to check for IsStarted() here when the check is made anyway further down? I also think it makes more sense to check manager state in the manager itself, the channel group shouldn't have to care about that (only that the state has changed).