! update: refactor the `Input` module.