rename ::Buffered -> ::Transactional (and methods)
better transactional semantics

fully re-entrant, stack-based