Shuffle the code around, add our Choice impl