use buffered reader