better _is_dirty_() check