getBuffer bad design, hard to use, so redesign it