refactor campaign form