heavy refactor, may have a slight bug with the RingBuffer.getFnvHash() method. Not entirely sure it's producing unique hashes everytime.