when send all, we only need marshal once