Extract a class for source target pair, and require a pair object to initialize a backup object