Do we want the serialisation to happen here, or in the caller?