Started work on alternative, hopefully simpler implementation of firsts, then realized it's not as simple as I had hoped