Perhaps, throw an exception here instead? ArgumentError, or StateError?