new read input functions