add buffering - some documentation