first pass over to address comments & some cleanup