This would be better as a callback within the Variant model. Could you please add it there?