added support for multiple client access in buffer, still need to do buffer cleanup