Refactor|InputSystem|Client: Reimplemented InputDevice models in OO C++