seems to be pretty robust now
more cleanup