variable reuse and factor