lots of cleanup i dunno