optimize the tempvar