initial commit to support 3.x & 4.0