You are setting `self.socket` twice: here and in the paren't `__init__()` method. Also, ideally the parent's constructor should be the first call on the subclass constructor, because then we can be sure that what we do here will not get messed up by a subsequent call to the parent's constructor.