An intermediate stage of the garage door opener market eliminated the DIP switches and used remotes preprogrammed to one out of roughly 3.5 billion unique codes. The receiver would maintain a security list of remotes to which it would respond; the user could easily add the unique remote's code to the list by pressing a button on the garage door opener while activating the remote control. A large number of codes made the brute force try-all-possible-digital-codes attacks infeasible, but the systems were still vulnerable to code grabbers. For user convenience, these systems were also backward compatible with the older DIP switch remote codes, but adding an old technology remote to the security list made the garage door opener vulnerable to a brute force attack to find the DIP switch code. The larger code space approach was an improvement over the fixed DIP switch codes but was still vulnerable to the replay attack.