smart input