Draft of refactoring approach for campaigns and other code to centralize logic