copy a -> b
initVal a
apply a -> b
copy b -> a
initVal b
apply b -> a