Refactoring transaction model and related controllers