add some comments to explain data gathering and remind myself later what I was thinking