add more comments
clean up a bit