added Validator, optimized createEvent