added an input interface