change the transpiler and add basic tests