This should either be a ArgumentError or a StateError. I'm leaning towards ArgumentError.