rewrote cp-poll w/ buffers