* maintain input interface