The domain language is clearer if we just persist a thread. Also rename some models so their purpose is clear.