changes a few variables to pointers, made engine work like it should, and added update to inputoutputcontroller