transaction first implementation + dummy interface
merge