forgot to init Message slots
nil vs vm.Nil should generally be transparent
I can't figure out op precedence :c