Big improvements, Now only uses one buffered reader.