always try to decompose last change variable