refactor run
defer property changes during action queue
change event isn't doubled anymore