validation implemented