modified 12&18&19.js