validation and POST