created input handler interface IInputHandler and hid some of the logic behind it so it's more like a facade for easier usage by the engine class