Following some addition thought, shouldn't buffering really be moved out into a separate class which composes with a target class? (Pattern something like: https://github.com/rackerlabs/otter/pull/271/files#L0R65 )