buffer: implement fill