A small library to abstract input from different sources to a unified interface