PUBLIC :: validate
capitalize procedure pointer assignment to be consistent thru the code so that a case sensitive search can find it
add several PRIVATEs in the code, so we dont only use things that are PUBLIC outside the module