added validation and references