input provider