make the lazy loading of threejs asynchronous again

also @opts.element -> @element