Refactor Poll
add caching to Poll