Refactor marshalling
Extract payload to its own struct, about to build more in
Decided against that idea
Use an interface, no union types :(