use msg serialization