refactor run
defer property changes during action queue