Completely rewrote the transpiler using jstransform: more stable & better performance