clean up
almost finished