add validation and format