hide buffer implementation