If people have a better suggestion I'm happy to change it. `ValueError` is not great.