fully working bufferedreader replacement