Refactor some campaign stuff