wip - more docs, added transaction around perform