added possibility to disable elements
refactored to work with jdk 8 changed the validator to reentrant lock