validation and demo