from previous thread, a lot of good suggestions.

  https://news.ycombinator.com/item?id=33797862
  https://news.ycombinator.com/item?id=33224904