validation needs transaction context