Reroll of #84 and #97 with features of both.