why the ugly if/else here rather than just "style or self.__parent.default_style"?