sync of the 3 implementations
adding support for block adapters