move serialization responsibility into chatuserpreferences