#5 moved more code to ADRingBuffer