Restructure CreateTrackingDeviceSource method (in ...TrackerTypeInformation). Adding tools to the new device should be done in Superclass and not redundant for each Tracking Device with dublicate code. Subclasses like for Polhemus can overwrite this function, add own code (e.g. getting the tool port) and call the superclass function for general adding tools.