added transaction observer