Begin refactoring extend() to be target-focused