Started writing an abstraction layer for input.