I'm confused what this does. Won't `p.decode(self.encoding).encode(self.encoding)` just return `p`?