Hi, I used your code in my project and added the possibility to provide custom required message

It was needed for localization. Tried to flatten  the code so it is easier to read.