generic transaction storage and unit tests. wip