use temporary variables