add more cleanup and states