added validation constraints