input functions