switch to buf read