wip, transaction implementation, done but not really tested