added more validation constrains