- [ ] rewrite fns in general terms that allow use of any data source - [ ] use `.map` on an array of spots instead of ridiculous ad hoc non-DRY iteration