add input handler