Refactor polling session and move channel checks into abstract session