that's pretty cool. I actually have a question about states. I've read that states should have a clean up method of some sort that should be called when the game is closed or the currently running state is changed to a new state. My question what exactly is supposed to happen in this clean up method? Its not like i can delete the variables or objects in a state , otherwise when i try to run the code I'll get a debug assertion error.