refactored BufferedReader to PushbackReader