push down assignments to where they're used