I don't like this. I assume we're calling init first for Dart and then for DartRemnant modifying the same object. If we need to init twice, it should return an instance of a new object instead, so we can have two initiated objects of the same kind for use by two different ad providers.