added user input interface