New decoupling JS validation framework