I2C EEPROM Class on playground

Today I updated the I2CEEPROM class to version 1.0.04 See - Arduino Playground - HomePage - ,
or - Arduino/libraries/I2C_EEPROM at master · RobTillaart/Arduino · GitHub -

I fixed some bugs and refactored the code. Most important the 1.0.04 version is on average substantial faster than the 1.0.00 version. This is done by optimizing internal buffer sizes to maximize the use of the TWI buffer, and by replacing the hardcoded 5 millisecs write latency after every write by a polling mechanism before a read or a write. The advantage is that the code will only wait for as long as needed and that will be less than 5 millis() quite often. This part can be simplified even further to get a smaller footprint, and to get the readByte() performance to previous level again but that is under test right now.

The performance numbers: (from the test sketch, UNO, IDE 1.5.4) - just as indication

400 KHZ I2C
reference 1.0.00

TEST: timing writeByte() 5164
TEST: timing writeBlock(50) 22120
TEST: timing readByte() 212
TEST: timing readBlock(50) 2476
total: 29972

1.0.04

TEST: timing writeByte() 220
TEST: timing writeBlock(50) 8600
TEST: timing readByte() 3768 // due to previous write!!
TEST: timing readBlock(50) 2252
total: 14460

(delay(5) added between tests to simulate other code)
TEST: timing writeByte() 212
TEST: timing writeBlock(50) 5996
TEST: timing readByte() 264
TEST: timing readBlock(50) 2248
total: 8720

100 KHZ I2C
reference 1.0.00

TEST: timing writeByte() 5452
TEST: timing writeBlock(50) 26348
TEST: timing readByte() 572
TEST: timing readBlock(50) 7020
total: 39402

optimized delay = 1.0.04

TEST: timing writeByte() 576
TEST: timing writeBlock(50) 12948
TEST: timing readByte() 4148
TEST: timing readBlock(50) 6360
total: 24032

(delay 5 added inbetween tests)
TEST: timing writeByte() 588
TEST: timing writeBlock(50) 10016
TEST: timing readByte() 712
TEST: timing readBlock(50) 6340
total: 17656

As always comments and remarks are welcome,