serizable protocol