beginnings of VI behavior

im gonna need to find a way to make separate thread in JS. Simple
asynchronous calls and synchronous blocks aren't gonna cut it