Implements transaction API