takeRetainedValue, rather than takeUnretainedValue