rudimentary input class (might delete all those mobile stuffs...)