campaign contoller refactoring update