added validation constraint support