use new CircularReader in place of std::string for incoming data