deriving Encodable, Decodable for all structs