Almost done, needs touching, is in beta now. Does everything but function calling and UserData handling.