refactor on campaign listing