we can also construct a <Level, int> dictionary and just use the dictionary, which "could" be cleaner