input is now far more modular.