diff 2.3 & 3.0 js