input implemented