introduce transactions
contacts functional with macos and ios