If this is the intended use case it doesn't really provide any benefit over the existing system. It needs to be completely decoupled from the simulation class if it's going to be useful as a service. Why can't the Input system poll SDL on its own?