make transaction work