fix serial detection
implement observer pattern for gui callback