fixed changed event up update only on visual change
changed conditional statements to be more explicit