Usando los principios de inversión de dependencias, debe quedar en este repo sólo y exclusivamente el "lector" que proporcione información al interfaz de usuario (o escritor, pero esto será independiente), con la clase física que haga la lectura componiendo o heredando ese lector, de forma que en principio lo que se inyecte al GUI sea independiente de cómo se ha inicializado. Mirad por ejemplo este artículo o este sobre como hacer desacoplamiento en Python.