Abstracting input system more