Currently every time you switch difficulties you change the assigned problem. That's cheating the system of torture.
Whenever the user changes difficulty store those problems into storage so it would be "assigned-easy-problem", "assigned-medium-problem", "assigned-hard-problem"
Whenever we do updateStorage, we should check if there's already an assigned problem. If there isn't then we can generate a new one, but if there is use the one in storage.
Currently every time you switch difficulties you change the assigned problem. That's cheating the system of torture.