lot of cleanup