move fk check from level 1 to level 2 validation for performance purpose