new interface for input