validation and demo
validation