Instead of prefixing each global symbol we add with "simulator", which will get unwieldy over time, we should create a Simulator singleton object that encapsulates the various Simulator-specific functions and values.