refactored surrogates