added validation on event and fixed factories