without BufferedReader