Trying to open several instances of PanelsController connecting to the same Hardware can lead to deadlocks in the network socket under Windows. Can the PanelsController either be a Singleton or use a FactoryMethod pattern to always return the correct handle?