We use self.__class__.name so much in this method, maybe set it earlier as cls_name or something to make the code look a bit cleaner?