Added ringbuffer, re-implementing recorder