This is mainly to satisfy my own curiousity and is not specific to this PR, but I'm wondering about how/why the open ended problems are broken into the classes they are.  I guess at this point the question is mostly "how is functionality broken down"?  This is also useful for me to familiarize myself with this part of the code.

e.g., why is stored_answer instance state defined in this class rather than, say CombinedOpenEndedModule or OpenEndedModule or CombinedOpenEndedV1Module?