Fleshed out input system