read within buffer instead of 1