complete: serialize & deserialize