Split suspended and invalidated into separate vars
Observable: rename dirty to invalidated