added validation framework