what do you think about changing this to `while` without that `nil?` check?