http://www.consolebee.com/2024/03/custom-validation-interface-in-c-part-2.html