cleaner state handling