documentation, validation with DataAnnotations