Transaction API

another try to get the PR clean ... thx @marcj for the git help :)