real clean up
also clean afterward