refactor topic poll, cache choices