Rewrite Buffered to support read-write buffering correctly