LCD with I2C backpack from WIDE.HK

Dear all,

I recently bought this display, but I can't get it going... I am fairly sure I hooked it up correctly (the first row of LCD lights up), and the I2C adress is correct. With code provided

#include <Wire.h>
#include <LCDI2C4Bit.h>
byte x = 0;
byte data = 1;
byte c;
LCDI2C4Bit lcd = LCDI2C4Bit(0x27,4,20);

void setup()
{
  Wire.begin(); // join i2c bus (address optional for master)
  lcd.init();
  lcd.clear();

  lcd.cursorTo(0,0);
  lcd.printIn("WWW.WIDE.HK");
  lcd.cursorTo(2,0);
  lcd.printIn("I2C 1602 LCD");
}

void loop()
{
  lcd.backLight(true);  delay(1000);
  lcd.backLight(false);  delay(1000);
}

the compiler says:

..libraries\I2C_1602_2004LCD\LCDI2C4Bit.cpp:8:57: error: WConstants.h: No such file or directory
..libraries\I2C_1602_2004LCD\LCDI2C4Bit.cpp:21: error: 'byte' does not name a type
..libraries\I2C_1602_2004LCD\LCDI2C4Bit.cpp:29: error: variable or field 'SetMCPReg' declared void
..libraries\I2C_1602_2004LCD\LCDI2C4Bit.cpp:29: error: 'byte' was not declared in this scope
..libraries\I2C_1602_2004LCD\LCDI2C4Bit.cpp:29: error: 'byte' was not declared in this scope
..libraries\I2C_1602_2004LCD\LCDI2C4Bit.cpp:29: error: 'byte' was not declared in this scope
..libraries\I2C_1602_2004LCD\LCDI2C4Bit.cpp:36: error: variable or field 'SendToLCD' declared void
..libraries\I2C_1602_2004LCD\LCDI2C4Bit.cpp:36: error: 'byte' was not declared in this scope
..libraries\I2C_1602_2004LCD\LCDI2C4Bit.cpp:36: error: 'byte' was not declared in this scope
..libraries\I2C_1602_2004LCD\LCDI2C4Bit.cpp:49: error: variable or field 'WriteLCDByte' declared void
..libraries\I2C_1602_2004LCD\LCDI2C4Bit.cpp:49: error: 'byte' was not declared in this scope
..libraries\I2C_1602_2004LCD\LCDI2C4Bit.cpp:49: error: 'byte' was not declared in this scope
..libraries\I2C_1602_2004LCD\LCDI2C4Bit.cpp: In member function 'void LCDI2C4Bit::init()':
..libraries\I2C_1602_2004LCD\LCDI2C4Bit.cpp:55: error: 'dataPlusMask' was not declared in this scope
..libraries\I2C_1602_2004LCD\LCDI2C4Bit.cpp:56: error: 'SetMCPReg' was not declared in this scope
..libraries\I2C_1602_2004LCD\LCDI2C4Bit.cpp:59: error: 'delay' was not declared in this scope
..libraries\I2C_1602_2004LCD\LCDI2C4Bit.cpp:60: error: 'SendToLCD' was not declared in this scope
..libraries\I2C_1602_2004LCD\LCDI2C4Bit.cpp:63: error: 'delayMicroseconds' was not declared in this scope
..libraries\I2C_1602_2004LCD\LCDI2C4Bit.cpp:67: error: 'WriteLCDByte' was not declared in this scope
..libraries\I2C_1602_2004LCD\LCDI2C4Bit.cpp: In member function 'void LCDI2C4Bit::backLight(bool)':
..libraries\I2C_1602_2004LCD\LCDI2C4Bit.cpp:76: error: 'dataPlusMask' was not declared in this scope
..libraries\I2C_1602_2004LCD\LCDI2C4Bit.cpp:78: error: 'SetMCPReg' was not declared in this scope
..libraries\I2C_1602_2004LCD\LCDI2C4Bit.cpp: In member function 'void LCDI2C4Bit::print(int)':
..libraries\I2C_1602_2004LCD\LCDI2C4Bit.cpp:83: error: 'dataPlusMask' was not declared in this scope
..libraries\I2C_1602_2004LCD\LCDI2C4Bit.cpp:84: error: 'byte' was not declared in this scope
..libraries\I2C_1602_2004LCD\LCDI2C4Bit.cpp:84: error: 'WriteLCDByte' was not declared in this scope
..libraries\I2C_1602_2004LCD\LCDI2C4Bit.cpp: In member function 'void LCDI2C4Bit::commandWrite(int)':
..libraries\I2C_1602_2004LCD\LCDI2C4Bit.cpp:106: error: 'WriteLCDByte' was not declared in this scope
..libraries\I2C_1602_2004LCD\LCDI2C4Bit.cpp:107: error: 'delay' was not declared in this scope

It seems to me that the library is outdated. I tried several other libraries for controlling I2C LCD display but with no luck and I am not capable of rewriting this library myself... Have you any ideas or experience of these LCD displays sold by wide.hk? Thank you...