I know this is carry over/merge related, but it seems a bit odd that we're passing data *and* the object itself essentially "back up the stack". Perhaps we can add this to the list of items to refactor later.