should there be a final else here that's like "throw new Error('we are fucked')"