hmm, the code is good, I think I just got confused by the naming `optionValue`. Let's come up a new name for it.