refactor webgl.js