Just some future planning in the comments

The long term goal is to rework the classes so that instantiating a high
level class with the appropriate arguments can then instantiate the
component level ones (sprite, menu) entirely within itself, getting rid
of a lot of pointers and other dangerous behavior.
After all, it's perfectly normal to specify which font bitmap you want
when you instantiate a big module like an input mapper, right? Hmm...