moving stuff out of simulator and into its own modules