added ProtectDetector, execute incremental magnet moves on separate thread