why by-name parameters are used here?