more variables, less manual computation