modified 20.js & 29.js