Added todo's and started abstracting the Engine.