allows checkboxes empty
radio can be null