added validation trait