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