update with suggestions from @kr