updated transaction model