advertiser refactoring, part 1, non-stable