It's a tricky balance between readability and intermediate variables, or more functions.