added transaction functions