Improve transaction model